如何删除 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,如何改变它的大小呢?

如何使 UIPopoverController 自动改变其箭头方向

如何自定义/样式化 UIPopoverController

有没有办法将 UIView 放在 UIPopoverController 上方?