我正在使用UIPopoverBackgroundView
该类来显示自定义UIPopover
.
事情就是这样。在 iOS 5 上,弹出框的显示不会在弹出框后面留下任何阴影。然而,在 iOS 6 中,popover 会掉落一个非常奇怪的阴影,它并不完全适合 popover:
无论如何我可以控制这种行为以在两个版本上达到一致的外观吗?
我正在使用UIPopoverBackgroundView
该类来显示自定义UIPopover
.
事情就是这样。在 iOS 5 上,弹出框的显示不会在弹出框后面留下任何阴影。然而,在 iOS 6 中,popover 会掉落一个非常奇怪的阴影,它并不完全适合 popover:
无论如何我可以控制这种行为以在两个版本上达到一致的外观吗?
为了在 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;
您可以在 UIPopoverBackgroundView 图层上手动设置阴影偏移:
self.layer.shadowOffset = CGSizeMake(_leftOffset, 0);
编辑:换句话说,影子是对的,只是在错误的地方。