16

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

4

7 回答 7

43

从 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 设置颜色:),模拟器不支持颜色,但在设备上它可以正常工作

于 2013-11-15T21:47:41.837 回答
5

现在在 iOS 5 中,popoverBackgroundViewClass 可用。

于 2011-11-03T16:18:29.690 回答
2

不幸的是,UIPopoverController不能像那样定制。您无法更改边框颜色、导航栏样式/颜色或箭头样式/颜色:如何自定义/设置 UIPopoverController 样式

于 2011-06-24T16:17:10.740 回答
1

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

看文档

于 2013-08-29T10:25:10.797 回答
0

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

于 2011-08-15T09:53:20.407 回答
0

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

于 2020-07-04T12:48:37.093 回答
-2

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

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

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

于 2011-08-15T09:00:44.107 回答