当前位置:  开发笔记 > IOS > 正文

如何自定义/设置UIPopoverController的样式

如何解决《如何自定义/设置UIPopoverController的样式》经验,为你挑选了4个好方法。

我正在使用iPad应用程序而我正在使用UIPopoverControllers.我正在应用程序需要品牌和样式的部分,我想知道如何更改UIPopoverController的颜色/色调?标准是深蓝色,但它需要是另一种颜色..

这可能吗?

招呼,托马斯



1> Andrew..:

可以iOS 5.0开始,通过继承抽象类UIPopoverBackgroundView并将子类分配给实例popoverBackgroundViewClass上的属性UIPopoverController.遗憾的是没有tintColor属性,因为popover需要使用图像作为箭头和边框,以便在动态调整大小时获得平滑的动画.您可以在UIPopoverBackgroundView类参考中了解有关如何自定义UIPopoverController外观的更多信息



2> Sneakyness..:

现在这是不可能的.

这就是我所说的"Box in a Box"模型.你得到的箱的控制箱(的内UIViewControllerUIPopoverController),但你必须在实际酥料饼本身非常有限的控制.在箭头方向和大小之外,你不能改变太多其他东西.还有一个模态效果弹出窗口的选项,当它出现时会使其他所有内容变暗,但我还没有尝试让它工作.

我相信你已经注意到现在没有UIPopover课.

你想听到的答案:
如果你真的想要设计一个不好的,那就写下你自己的.这真的不是那么难.

你想点击的链接:
Cocoacontrols是GitHub上可用的iOS和OSX组件的索引,它们有一些弹出式的东西.


从iOS5开始,您现在可以将UIPopoverBackgroundView子类化,并将您的子类返回到popoverBackgroundViewClass.

3> Ashok..:

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设置颜色:),模拟器(甚至某些设备)不支持颜色.



4> Patrick Peri..:

把帽子扔在这里;

我已经UIPopoverBackgroundView在iOS 5+中使用了s来为s添加一个简单的tintColor属性UIPopoverController.

PCPopoverController:https://github.com/pcperini/PCPopoverController

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有