2

を使用してUIPopoverControllerを表示していUIViewます。レイアウトは少し似ているUISplitViewControllerので、「詳細ビュー」に小さなギャップが残るため、角が丸くなっているように見えるのは非常に奇妙です。私はこの問題を抱えている他の人々に関連するものをまったく見つけることができませんでしたが、これらの丸い角はデフォルトのスタイルのようです。それらを削除することは可能ですか?

役立つかもしれないこと:

  • nibファイルからビューをロードしましたが、現在、デフォルトに変更を加えていません。UIView
  • で設定clipsToBound = NOしてみましたviewDidLoad
  • で設定layer.cornerRadius = 0してみましたviewDidLoad

ビューの上部にも影があるように見えますが、わかりにくいです。このデフォルトのスタイルをすべて取り除く方法はありますか?空白の正方形が欲しいだけです。

4

3 に答える 3

11

UIPopoverController内のビューの角が丸くないようにするためのサポートされている方法はありません。UIPopoverControllerの内部コードは、境界にクリップする角が丸いビューにビューを追加します。

それを行うにはハックな方法があるかもしれません。つまり、UIPopoverControllerが表示されるまで待ってから、ビューのすべての親をトラバースし、それらすべてを持っているように設定しcornerRadius = 0;ますclipsToBounds = NO;が、解決策を見つけたとしても、すべてと互換性があるとは限りません。 iOSのバージョンであり、Appleが将来UIPopoverControllerの内部コードを変更した場合、ソリューションが機能しなくなる可能性があります。

本当にこれを実行したい場合は、UIPopoverController機能を模倣する独自のクラスを作成するのが最善の方法です。

于 2012-07-12T00:30:13.570 に答える
0

UIPopoverControllerのデフォルトは、角が丸い黒のグラデーションカラーフレームです。ただし、カスタムクラスを使用して背景ビューを設定できます。こちらのリンクをたどってみてください。

ポップオーバーのカラーナビゲーションコントローラーを変更する

于 2012-07-10T05:11:53.203 に答える
0

を使用する人はUIPopoverPresentationController、次のように機能するはずです。

override open func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    view.superview?.layer.cornerRadius = 0
}
于 2017-06-20T05:00:11.647 に答える