我正在使用iPad应用程序而我正在使用UIPopoverControllers.我正在应用程序需要品牌和样式的部分,我想知道如何更改UIPopoverController的颜色/色调?标准是深蓝色,但它需要是另一种颜色..
这可能吗?
招呼,托马斯
这可以从iOS 5.0开始,通过继承抽象类UIPopoverBackgroundView
并将子类分配给实例popoverBackgroundViewClass
上的属性UIPopoverController
.遗憾的是没有tintColor
属性,因为popover需要使用图像作为箭头和边框,以便在动态调整大小时获得平滑的动画.您可以在UIPopoverBackgroundView类参考中了解有关如何自定义UIPopoverController外观的更多信息
现在这是不可能的.
这就是我所说的"Box in a Box"模型.你得到的箱的控制箱(的内UIViewController
内UIPopoverController
),但你必须在实际酥料饼本身非常有限的控制.在箭头方向和大小之外,你不能改变太多其他东西.还有一个模态效果弹出窗口的选项,当它出现时会使其他所有内容变暗,但我还没有尝试让它工作.
我相信你已经注意到现在没有UIPopover
课.
你想听到的答案:
如果你真的想要设计一个不好的,那就写下你自己的.这真的不是那么难.
你想点击的链接:
Cocoacontrols是GitHub上可用的iOS和OSX组件的索引,它们有一些弹出式的东西.
iOS 7引入的backgroundColor
属性UIPopoverController
影响/包括导航背景颜色以及弹出框的箭头.
@property (nonatomic, copy) UIColor *backgroundColor NS_AVAILABLE_IOS(7_0);
用法示例:
if ([self.popoverVC respondsToSelector:@selector(setBackgroundColor:)]) { // Check to avoid app crash prior to iOS 7 self.popoverVC.backgroundColor = [UIColor greenColor]; // [UIColor colorWithPatternImage:@"..."] doesn't reflect the color on simulator but on device it works! }
注意 - 截至目前(iOS 7.0.3),在某些情况下(如使用colorWithPatternImage设置颜色:),模拟器(甚至某些设备)不支持颜色.
把帽子扔在这里;
我已经UIPopoverBackgroundView
在iOS 5+中使用了s来为s添加一个简单的tintColor
属性UIPopoverController
.
PCPopoverController
:https://github.com/pcperini/PCPopoverController