2

UIPopoverBackgroundViewクラスを使用してカスタムを表示していますUIPopover

これがそのことです。iOS 5では、ポップオーバーの背後に影を落とすことなく、ポップオーバーが表示されます。ただし、iOS 6では、ポップオーバーは非常に奇妙な影を落としますが、これはポップオーバーに完全には適合しません。

iOS5ポップオーバー

iOS6ポップオーバー

とにかく、両方のバージョンで一貫した外観に到達するようにこの動作を制御できますか?

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 に答える