2011-01-13 29 views
5

UIPopOverを透明(アルファ= 0.75程度)にする方法はありますか?残念ながら、UIPopOverのアルファプロパティはありません。私はそれの下のビューがまだ部分的に見えるようにpopoverを提示する必要があります。任意のアイデア透明なUIPopover

答えて

4
popoverController.contentViewController.view.alpha = 0.5; 

アルファあなたはポップオーバーのビューを取得し、そのビューにアルファを設定する必要があるので、UIViewのプロパティのです。

+1

これは理論上は機能するはずですが、実際は動作しません。 –

3

現在、UIPopoverControllerのアルファを設定するプロパティはありません。

そうした場合:popoverController.contentViewController.view.alpha = 0.5;

内部ビュー&内容はUIPopoverController自体transparantなくなります。 iOS5.0以降で

Related question

6

、一つはUIPopoverControllerのカスタム背景を提供することができます。その背景は、alphaのような通常のUIViewのプロパティを提供するUIPopoverBackgroundViewから派生しなければなりません。 名前がちょっと混乱していることに注意してください。UIPopoverBackgroundViewは、フレーム、矢印、背景グラフィックスを提供します。

ですから、UIPopoverController完全に半透明が必要な場合は、すべてあなたがしなければならない1.0以下の何かに向けてそのalphaを設定UIPopoverBackgroundViewクラスを提供します。また、contentViewControllerのビューが(完全に)透明であることを確認する必要があります。

例:詳細は

enter image description here


see the popoverBackgroundViewClass property of UIPopoverController

popoverBackgroundViewClass 

クラスポップオーバーの背景コンテンツを表示するために使用します。

@property (nonatomic, readwrite, retain) Class popoverBackgroundViewClass 

議論

このプロパティのデフォルト値は ポップオーバー・コントローラは、既定のポップオーバーの外観を使用するべきであることを示すゼロです。 をこのプロパティにnil以外の値に設定すると、ポップオーバーコントローラ は指定されたクラスを使用してポップオーバーのバックグラウンドコンテンツを描画します。 指定するクラスは、UIPopoverBackgroundViewのサブクラスでなければなりません。

iOS 5.0以降で使用できます。 で宣言されました UIPopoverController.h

+0

Haventはまだ使用していましたが、UIPopoverをさらにカスタマイズすることができました。 – Jasper

+3

このサポートは、iOS 9.0では廃止されました。より新しい方法があるかどうか誰かが知っているとは思わない? –

0

これで、popoverPresentationControllerのbackgroundColourプロパティを使用することができます。

  if let popoverPresentationController = myController.popoverPresentationController { 
       popoverPresentationController.backgroundColor = UIColor(white: 1, alpha: 0.5) 
      } 

(透明だけでなく、あなたがacheiveしようとしている効果に適切なにそのビューでポップオーバーとコントロールでビューを設定することを忘れないでください)

詳細はthis SO answerを参照してください。