1

以下は私のポップオーバーのスナップショットです:

ここに画像の説明を入力

として表示したいUIViewController(たとえばA)がありpopoverControllerます。また、ポップオーバーをカスタマイズしたいので、カスタマイズしていますUIPopoverBackgroundView(「b」と言う-オレンジ色の背景)。A.viewと「b」の角を丸めた後、長方形の影の線があることを除いて、すべてが正常に機能しています(スナップショットからはおそらくA.viewに属します-緑色の背景)。UIViewまたはAPI に基づいてUIViewController、その影を削除する方法はありますか。あいまいな影ではなく、ビューの左、上、右の黒い線を削除することにのみ関心があります。

私は試しました:

[A.view.layer setShadowOpacity:0.0];

しかし運がない。

4

3 に答える 3

3

layoutSubviews メソッドで [super layoutSubviews] の呼び出しを削除します。

wantsDefaultContentAppearance をオーバーライドして NO を返すことは、私にとってはうまくいきませんでした。

于 2013-11-01T21:23:08.647 に答える
3

UIPopoverBackgroundView サブクラスで、クラス メソッドをオーバーライドします。

+ (BOOL)wantsDefaultContentAppearance

戻るNOこれにより、ここに記載されているように内側の影が描画されなくなります。

于 2013-01-05T22:27:14.380 に答える
2

UIPopoverControllerの影を直接制御することはできません。オプションは次のとおりです。

  1. 独自の種類のポップオーバーをロールします。
  2. サブクラスUIPopoverBackgroundView化して、ポップオーバーのフレームに独自のグラフィックを提供します。公式ドキュメントに反して、 をサブクラス化すると、影は描画されませんUIPopoverBackgroundView。これを行う方法に関する素晴らしい投稿は次のとおりです。http://blog.andrewkolesnikov.com/custom-background-color-tint-for-uipopover-64835
于 2013-01-05T21:10:13.487 に答える