如何去除 iOS 9 上弹出框后面的阴影?

How to remove shadow behind popovers on iOS 9?

在iOS8 中,弹出窗口没有阴影。现在在 iOS 9 中,有一个非常沉重且影响深远的阴影,在纯白色背景上看起来不太理想。如何移除该阴影,而是在弹出窗口周围添加一条浅灰色细线?或者至少减少或减轻重量。

显示操作 sheets、使用 .Popover UIModalPresentationStyle 呈现视图控制器时以及可能在其他上下文中会出现这种情况。

弹出框转场:

动作sheet:

UIActionSheet(title: "Title", delegate: nil, cancelButtonTitle: "Cancel", destructiveButtonTitle: "Destroy").showInView(sender as! UIView)

您可以使用 UIPopoverBackgroundView

制作您自己的自定义弹出框背景

UIPopoverBackgroundView 实施的 initWithFrame 中,您可以使用 [UIColor clearColor 作为阴影。

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {

        self.layer.shadowColor = [[UIColor clearColor] CGColor];
    }

    return self;
}

Swift 已接受答案的第 4 个版本。

override init(frame: CGRect) {
    super.init(frame: frame)    
    layer.shadowColor = UIColor.clear.cgColor
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}