UIPopoverController的UIView:如何删除阴影?

时间:2013-01-05 18:51:44

标签: objective-c uiview ios6 xcode4.3 uipopovercontroller

以下是我的popover的快照:

enter image description here

我有一个UIViewController(比如说​​A)我要显示为popoverController。另外我想自定义popover所以我自定义UIPopoverBackgroundView(比如'b' - 橙色背景)。一切都正常工作,除了圆角A.view和'b'后我有一个矩形阴影线(从快照可能属于A.view - 绿色背景)。基于UIViewUIViewController API,我有什么方法可以消除这个阴影。我只对删除视图左侧,顶部和右侧的黑线而不是模糊的阴影感兴趣。

我确实尝试过:

[A.view.layer setShadowOpacity:0.0];

但没有运气。

3 个答案:

答案 0 :(得分:3)

在UIPopoverBackgroundView子类中,重写类方法:

+ (BOOL)wantsDefaultContentAppearance

返回NO。这可以防止绘制内部阴影,如记录here

答案 1 :(得分:3)

删除layoutSubviews方法中对[super layoutSubviews]的调用。

覆盖wantsDefaultContentAppearance并返回NO对我不起作用。

答案 2 :(得分:2)

您无法直接控制UIPopoverController的阴影。您的选择是:

  1. 滚动你自己的弹出窗口。
  2. 子类UIPopoverBackgroundView并为弹出框架提供您自己的图形。与官方文档相反,当您继承UIPopoverBackgroundView时,阴影不会被吸引。以下是关于如何执行此操作的精彩文章:http://blog.andrewkolesnikov.com/custom-background-color-tint-for-uipopover-64835