如何删除 UIPopoverController 中的“模糊”阴影
Posted
技术标签:
【中文标题】如何删除 UIPopoverController 中的“模糊”阴影【英文标题】:How to remove the "fuzzy" drop shadow in the UIPopoverController 【发布时间】:2011-03-08 16:22:03 【问题描述】:我不想在 UIPopoverController 的视图出现时出现投影。有没有办法消除这种阴影效果?
【问题讨论】:
【参考方案1】:不是直截了当,但从 ios 5 开始,您可以使用 UIPopoverBackgroundView 制作自己的自定义弹出框背景。
查看此问题的答案:Using UIPopoverBackgroundView class。它指向一个很好的tuto。
然后,在你的 UIPopoverBackgroundView 实现的 initWithFrame 中,你可以使用 clearColor 作为投影。使用偏移量和半径对我不起作用。
- (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self)
self.layer.shadowColor = [[UIColor clearColor] CGColor];
return self;
【讨论】:
这就是答案。只要你的东西看起来不错并且行为正常,它就会通过审核。【参考方案2】:阴影是弹出视图层的属性。如果您可以访问该图层,则可以将其阴影半径设置为 0.0 并将阴影偏移设置为 0.0, 0.0。但是,看起来视图必须是弹出框控制器的私有 ivar,因此没有简单的方法可以访问它。此外,如果您希望通过应用商店分发此应用,使用私有 ivar 和更改标准 UI 元素的外观都可能导致您的应用被拒绝。
【讨论】:
【参考方案3】:您只需要使用您的自定义 UIPopoverBackgroundView 并在那里实现此功能:
+ (BOOL)wantsDefaultContentAppearance
return NO;
【讨论】:
不被调用;以上是关于如何删除 UIPopoverController 中的“模糊”阴影的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UIPopoverController 上创建按钮 [关闭]
如何观察 UIPopoverController 何时被解雇?
UIPopoverController,如何改变它的大小呢?