【问题标题】:Custom UIPopover has strange shadow on iOS 6自定义 UIPopover 在 iOS 6 上有奇怪的阴影
【发布时间】:2012-10-07 13:50:06
【问题描述】:

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

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

我是否可以控制此行为以在两个版本上达到一致的外观?

【问题讨论】:

  • 好的,这很奇怪。在提供的示例中,我使用了可拉伸的图像。现在,我决定使用UIView 并将backgroundColor 设置为我的自定义颜色,然后将其设置为子视图(而不是图像)。现在,阴影从 ios 6 中消失了……

标签: ios ipad uikit uipopovercontroller uipopover


【解决方案1】:

为了在 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;

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 对不起,Cricket,我认为你没有很好地理解这个问题。阴影出现在 iOS 6 上,但从未出现在 iOS 5 上。位置不是主要问题,即使它可能是次要问题。
    • 是的,但是对于那些仅仅因为 iOS 6 影子问题而绊倒这个问题的人(比如我),答案就在上面。只需轻推偏移量。
    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多