7

私はUIPopoverBackgroundViewをサブクラス化してカスタムポップオーバーの背景を作ります。私は丸い角を使わずにポップオーバーをしたい。丸みを帯びたコーナー(赤い画像)を使わないで背景を正常に作成できますが、UIPopoverControllerがポップオーバーの内容に丸みのあるコーナーマスクを追加しているようです(緑色の画像)。ここに私のポップオーバーのコーナーの画像です:UIPopoverBackground角が丸くないビュー

enter image description here

すべてのアイデアは、私はそれを克服することができますどのように?

+0

UIPopupviewControllerのpopoverLayoutMarginsプロパティを設定してください。 – Tirth

+0

@Reformerありがとうございましたが、それは私のために働いていません – sash

+0

あなたのコードを教えてください。 – Sulthan

答えて

32

私が見つけました簡単な解決策、ポップオーバーのコンテンツコントローラ(あなたがinitWithContentViewControllerに渡すものを)追加で:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    self.view.superview.layer.cornerRadius = 0; 
} 
+1

おかげで時間も節約されました...乾杯 – Sabby

+2

これはiOS 10以降では機能しなくなりました。 – jhelzer

0

独自のPopoverBackgroundViewを実行できます。私はUIPopoverBackgroundViewを使ったことはありませんが、プロパティがあるかもしれませんが、それ以外の場合は独自の設定を行い、角を丸めずにビューを設定することができます。

+0

APIはありますか?私はUIPopoverBackgroundViewの内部に丸みのあるコーナーなしに設定されるAPIを見つけられませんでしたか? –

+0

おそらく、XQuartzフレームワークが役に立ちます。 –

+0

おそらくサッシュは正しい解決策を出しました。 –

0

は、このためには、色をクリアしてからgreencolourで、ビュー上でポップにUIViewのを追加し、そのサブビューとして他のすべてのビューを追加するための緑の色を変更することができます。(これは、トリッキーな方法です)

+0

ありがとうございますが、ポップオーバーコンテンツはスクロール可能ですので、このソリューションは私のためには機能しません – sash

+0

UIScrollViewをポップオーバービューのサブビューとして利用しましたか? – Ashutosh

+0

ポップオーバーのコンテンツビューコントローラはUIViewControllerで、テーブルビューで表示されます – sash