2

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

事情就是这样。在 iOS 5 上,弹出框的显示不会在弹出框后面留下任何阴影。然而,在 iOS 6 中,popover 会掉落一个非常奇怪的阴影,它并不完全适合 popover:

ios 5 弹出框

ios 6 弹出框

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

4

2 回答 2

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;
于 2012-10-07T23:11:42.930 回答
0

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

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

编辑:换句话说,影子是对的,只是在错误的地方。

于 2012-12-16T23:56:06.040 回答