2011-01-13 35 views
5

有沒有辦法使UIPopOver透明(alpha = 0.75左右)。不幸的是,UIPopOver沒有alpha屬性。我需要展示popover,以便它下面的視圖仍然可以部分顯示。任何想法透明UIPopover

回答

4
popoverController.contentViewController.view.alpha = 0.5; 

阿爾法是一個的UIView的財產,所以你需要得到酥料餅的視圖,然後設置阿爾法這一觀點。

+1

而這在理論上應該工作,在現實中卻是行不通的。 – 2013-02-13 20:26:55

3

目前沒有財產來設置UIPopoverController的alpha。

如果你這樣做:popoverController.contentViewController.view.alpha = 0.5;

內部風景&內容將TRANSPARANT而不是UIPopoverController本身。

Related question

6

與iOS5.0開始,一個可以爲UIPopoverController自定義背景。該背景必須來自UIPopoverBackgroundView,其確實提供了諸如alpha之類的正常UIView屬性。 請注意,名稱有點令人困惑 - UIPopoverBackgroundView提供了框架,箭頭以及背景圖形。

所以如果你需要一個完全半透明UIPopoverController,所有你需要做的就是提供一個UIPopoverBackgroundView類設置其alpha朝下方1.0東西。你還需要確保你的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

還沒有使用過,但還沒有高興看到有更多的最終定製UIPopover – Jasper 2013-04-17 13:49:26

0

您現在可以使用popoverPresentationController的backgroundColour屬性來執行此操作,例如,

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

(不要忘記設置在該視圖中,以透明和適當的效果,你試圖acheive的酥料餅和控制視圖)

詳情請參閱this SO answer