如何删除UIPopoverController中的“模糊”投影

时间:2011-03-08 16:22:04

标签: ios uikit uipopovercontroller

当UIPopoverController的视图出现时,我不想要投影。有没有办法删除这个阴影外观?

3 个答案:

答案 0 :(得分:12)

不是直截了当,但是从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;
}

答案 1 :(得分:0)

阴影是弹出视图图层的属性。如果您可以访问图层,则可以将其阴影半径设置为0.0,将阴影偏移设置为{0.0,0.0}。但是,看起来视图必须是弹出控制器的私有ivar,因此没有一种简单的方法可以实现。此外,如果您希望通过应用程序商店分发此应用程序,使用私有ivar并更改标准UI元素的外观,可能会导致您的应用被拒绝。

答案 2 :(得分:0)

您只需使用自定义UIPopoverBackgroundView并实现此功能:

+ (BOOL)wantsDefaultContentAppearance {
    return NO;
}