1

以下是我的弹出窗口的快照:

在此处输入图像描述

我有一个UIViewController(比如 A),我想显示为popoverController. 另外我想自定义弹出框,所以我正在自定义UIPopoverBackgroundView(比如'b' - 橙色背景)。一切正常,除了在将 A.view 和 'b' 的角变圆后,我有一条矩形阴影线(从快照中它可能属于 A.view - 绿色背景)。基于UIViewUIViewControllerAPI,有什么方法可以消除该阴影。我只对删除视图左侧、顶部和右侧的黑线而不是模糊的阴影感兴趣。

我确实尝试过:

[A.view.layer setShadowOpacity:0.0];

但没有运气。

4

3 回答 3

3

在您的 UIPopoverBackgroundView 子类中,覆盖类方法:

+ (BOOL)wantsDefaultContentAppearance

要返回NO。这可以防止绘制内部阴影,如此所述。

于 2013-01-05T22:27:14.380 回答
3

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

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

于 2013-11-01T21:23:08.647 回答
2

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

  1. 滚动你自己的弹出窗口。
  2. 子类UIPopoverBackgroundView化并为弹出框的框架提供您自己的图形。与官方文档相反,当您子类化时,阴影不会为您绘制UIPopoverBackgroundView。这是一篇关于如何做到这一点的好帖子:http: //blog.andrewkolesnikov.com/custom-background-color-tint-for-uipopover-64835
于 2013-01-05T21:10:13.487 回答