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

UIPopoverController的视图出现时,我不想要投影。 有没有办法去掉这个阴影效果呢?

不是直接的,但是从iOS 5开始,你可以使用UIPopoverBackgroundView来创build你自己的自定义弹窗背景。

看到这个问题的答案: 使用UIPopoverBackgroundView类 。 这是指向一个很好的tuto。

然后,在UIPopoverBackgroundView实现的initWithFrame中,可以使用clearColor作为投影。 使用偏移量和半径不适合我。

- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.layer.shadowColor = [[UIColor clearColor] CGColor]; } return self; } 

阴影是popup视图的图层的属性。 如果可以访问该图层,则可以将它的阴影半径设置为0.0,将阴影偏移设置为{0.0,0.0}。 然而,看起来这个视图必须是popover控制器的私人ivar,所以并不是一个简单的方法。 此外,如果你想通过app store分发这个应用程序,使用私人伊娃和改变标准UI元素的外观都可能会被拒绝。

你只需要使用你自定义的UIPopoverBackgroundView,并在那里实现这个function:

 + (BOOL)wantsDefaultContentAppearance { return NO; }