4

UISplitViewControllerすぐに使用できるビューコントローラーを備えたストックをMaster使用Detailしています。UIImageViewストーリーボードでは、Detailコントローラー セットにを追加して、ビューを 1 つの画像で効果的に埋めました。

コントローラーではMaster、次を使用してそのコントローラーの背景をぼかしました。

// In viewDidLoad

self.tableView.backgroundColor = [UIColor clearColor];
    UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
    UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc]
                                            initWithEffect:blurEffect];
    self.tableView.backgroundView = visualEffectView;
    self.tableView.separatorEffect = [UIVibrancyEffect effectForBlurEffect:blurEffect];

Masterコントローラがコントローラの上に表示されたら、コントローラの端の内側の端に暗い影がDetailどのように表示されるかに注目してください。Master

これらの「影」を削除して、代わりに均一なぼかしをレンダリングするにはどうすればよいですか?

スプリット ビュー コントローラー

詳細

UIPopoverSlidingChromeView

IB でビュー階層をデバッグすると、 と呼ばれる (プライベート? ) ビューが明らかになり_UIPopoverSlidingChromeViewます。灰色のフレームが挿入されており、これが不均一なぼかしの原因であることは間違いありません。

ぼかしビューを完全に無効にし、self.tableview.backgroundColor = [UIColor clearColor]ショー_UIPopoverSlidingChromeViewの灰色のフレームだけを残します。次のようになります。

レンダリングされた UIPopoverSlidingChromeView

_UIPopoverSlidingChromeView使用時に回避する方法について何か考えはありますUISplitViewControllerか?

4

2 に答える 2

3
    //как убрать дурацкий прямоугольник при прозрачном фоне maser окна в режиме UISplitViewControllerDisplayModeOverlay
    CALayer* v_1 =  self.view.superview.superview.superview.layer.sublayers[0];
    CALayer* v_2=v_1.sublayers[0];
    v_2.borderWidth=0;
于 2014-12-14T15:30:04.290 に答える