UIPopoverController 的 UIView:如何去除阴影?
Posted
技术标签:
【中文标题】UIPopoverController 的 UIView:如何去除阴影?【英文标题】:UIPopoverController's UIView: How to remove shadow? 【发布时间】:2013-01-05 18:51:43 【问题描述】:以下是我的弹出框的快照:
我有一个UIViewController
(比如A),我想显示为popoverController
。我还想自定义弹出框,所以我正在自定义UIPopoverBackgroundView
(比如'b' - 橙色背景)。一切正常,除了在将 A.view 和 'b' 的角变圆后,我有一条矩形阴影线(从快照中它可能属于 A.view - 绿色背景)。基于UIView
或UIViewController
API,有什么方法可以消除该阴影。我只对删除视图左侧、顶部和右侧的黑线而不是模糊的阴影感兴趣。
我试过了:
[A.view.layer setShadowOpacity:0.0];
但没有运气。
【问题讨论】:
【参考方案1】:在你的 UIPopoverBackgroundView 子类中,重写类方法:
+ (BOOL)wantsDefaultContentAppearance
返回NO
。这可以防止绘制内部阴影,如记录的here。
【讨论】:
谢谢。它确实消除了那条线阴影,我明白我错过了什么。【参考方案2】:在你的 layoutSubviews 方法中移除对 [super layoutSubviews] 的调用。
覆盖 wantDefaultContentAppearance 并返回 NO 对我不起作用。
【讨论】:
【参考方案3】:您无法直接控制UIPopoverController
的阴影。您的选择是:
-
滚动您自己的弹出框。
子类
UIPopoverBackgroundView
并为弹出框的框架提供您自己的图形。与官方文档相反,当您将UIPopoverBackgroundView
子类化时,不会为您绘制阴影。这是一篇关于如何做到这一点的好帖子:http://blog.andrewkolesnikov.com/custom-background-color-tint-for-uipopover-64835
【讨论】:
我已经继承了 UIPopoverBackgroundView 类,如问题中所述。无论如何感谢您的回答。下面的 jrturton 回答有助于获得我想要的东西。谢谢你。以上是关于UIPopoverController 的 UIView:如何去除阴影?的主要内容,如果未能解决你的问题,请参考以下文章
当 UIPopoverController 在屏幕上时,无法与带有 UIPopoverController 的 UISearchBar 进行交互