Search code examples
iosuipopovercontrollerpopoverios9

How to remove shadow behind popovers on iOS 9?


In iOS 8, popovers had no shadow. Now in iOS 9, there is a very heavy and far reaching shadow that can look less than desirable on pure white backgrounds. How can that shadow be removed, and instead add a thin light gray line around the popover? Or at least reduced or made lighter.

This occurs when showing action sheets, presenting a view controller using the .Popover UIModalPresentationStyle, and perhaps in other contexts.

Popover segue: enter image description here

Action sheet:

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

enter image description here


Solution

  • You can make your own custom popover background using UIPopoverBackgroundView

    In the initWithFrame of your UIPopoverBackgroundView implementation, you can use a [UIColor clearColor for the drop shadow.

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