自定义UIPopover在iOS 6上有奇怪的阴影

时间:2012-10-07 13:50:07

标签: ios ipad uikit uipopovercontroller uipopover

我正在使用UIPopoverBackgroundView类来显示自定义UIPopover

这是事情。在iOS 5上,显示弹出窗口时不会在弹出框中隐藏任何阴影 。然而,在iOS 6中,popover掉落了一个非常奇怪的阴影,不完全适合popover:

ios 5 popover

ios 6 popover

无论如何我可以控制这种行为以在两个版本上达到一致的外观吗?

2 个答案:

答案 0 :(得分:4)

为了删除iOS 6上的阴影,并在弹出框中添加自定义阴影:

1)通过覆盖layoutSubviews

删除阴影
- (void)layoutSubviews {
    // remove shadow (iOS 6)
}

2)在BG视图中添加阴影属性

_borderView.layer.shadowColor = [UIColor blackColor].CGColor;
_borderView.layer.shadowOpacity = 1.f;
_borderView.layer.shadowRadius = 15;
_borderView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);

_borderView.layer.shouldRasterize = YES;

答案 1 :(得分:0)

您可以在UIPopoverBackgroundView图层上手动设置阴影偏移:

self.layer.shadowOffset = CGSizeMake(_leftOffset, 0);

编辑:换句话说,阴影是正确的,只是在错误的地方。