【问题标题】:Customizing the UIPopoverController view background and border color自定义 UIPopoverController 视图背景和边框颜色
【发布时间】:2011-08-23 21:14:07
【问题描述】:

是否可以更改弹出视图的边框颜色、导航栏样式/颜色和箭头样式/颜色?如果是这样,怎么做?如果有一些示例代码可用,那就太好了!

【问题讨论】:

    标签: ios ipad popover


    【解决方案1】:

    从 iOS 7 开始,您可以更改 backgroundColorUIPopoverController,这会影响导航背景颜色以及弹出框的箭头。

    @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];
        }
    

    注意 - 截至目前 (iOS 7.0.3),在某些情况下(例如使用 colorWithPatternImage 设置颜色:),模拟器不支持颜色,但 在设备上可以使用很好

    【讨论】:

    • 是的,如果您只需要更改弹出框的背景(包括箭头),这是最快的方法。比子类化UIPopoverBackgroundView 进行简单更改要好得多。
    • 请注意,如果您在弹出框内显示的视图有自己的背景颜色,您只会在箭头上看到弹出框的背景颜色。
    • 对于简单的自定义(IE 更改箭头颜色),这应该是公认的答案!
    【解决方案2】:

    现在在 iOS 5 中,popoverBackgroundViewClass 可用。

    【讨论】:

      【解决方案3】:

      不幸的是,UIPopoverController 不能像那样自定义。您无法更改边框颜色、导航栏样式/颜色或箭头样式/颜色:How to customize / style a UIPopoverController

      【讨论】:

      • 这个已经失效了,iOS5后popoverBackgroundView可以子类化了,这里有一个我刚刚用过的好:github.com/GiK/GIKPopoverBackgroundView
      • 注意-以上一个是旧的/过时的答案。现在在 iOS 7 中,对于导航栏和箭头颜色的变化,UIPopoverController 引入了backgroundColor 作为属性。请参阅下面的答案。
      【解决方案4】:

      从 ios 5 开始,你可以做很多事情,只要试试这个库 https://github.com/ddebin/DDPopoverBackgroundView 您可以自定义边框色调颜色、边框宽度以及箭头

      查看文档

      【讨论】:

        【解决方案5】:

        弹出框内的导航栏和工具栏只是一个标准的 UINavigationBar 和 UIToolBar,我已经成功地改变了它们的外观,就像你使用普通的导航栏或工具栏一样。然而,边框不容易定制。

        【讨论】:

          【解决方案6】:

          您可以使用ElegantPopover cocoapod 来完成其中的一些操作。

          【讨论】:

            【解决方案7】:

            我尝试通过自定义弹出框内的视图控制器然后使用此代码隐藏弹出框边框来欺骗它

            UIView * border = [[insideViewController.view.superview.superview.superview subviews] objectAtIndex:0];  
            border.hidden = YES;
            

            该应用程序实际上仍在开发中,所以我希望其他人会对此解决方案发表评论。

            【讨论】:

            • 修改未公开的视图层次结构可能是个坏主意,即使您的应用程序被接受。如果 Apple 将来修改视图,您的代码将突然停止工作。
            • 您可能希望在 stackoverflow.com/a/7063257/1015071 链接到您的 dup 答案
            猜你喜欢
            • 1970-01-01
            • 2019-06-14
            • 2015-05-09
            • 2017-04-30
            • 2010-09-28
            • 2015-04-21
            • 2014-11-17
            • 1970-01-01
            相关资源
            最近更新 更多