2016-02-09 43 views
0

我已經創建了導航欄的佈局,並且我已將導航欄變爲半透明。我已添加此代碼:在導航欄missalignes視圖上關閉半透明

var overlay : UIView? // This should be a class variable 

overlay = UIView(frame: view.frame) 
overlay!.backgroundColor = UIColor.blackColor() 
overlay!.alpha = 0.8 

view.addSubview(overlay!) 

如果我理解正確,這應該創建疊加在我的視圖上。但它給了我這個結果: enter image description here 所以我認爲這錯過了我的觀點。任何想法如何解決這個問題?

回答

1

它正在發生,因爲如果您將半透明 設置爲關閉,則查看原點會發生變化。因此,使用view.frame而不是使用view.bounds

var overlay : UIView? 

overlay = UIView(frame: view.bounds) 
overlay!.backgroundColor = UIColor.blackColor() 
overlay!.alpha = 0.8 

view.addSubview(overlay!) 
0

如下替換你的代碼。

overlay = UIView(frame: view.bounds) 
overlay!.backgroundColor = UIColor.blackColor() 
overlay!.alpha = 0.8 

view.addSubview(overlay!) 

理由使用範圍,而不是框架, 你已經把半透明的。所以你的觀點將從(0,64)而不是(0,0)開始;

這就是爲什麼它獲得y = 64幀值, 您可以設置y = 0或直接使用view.bounds,在邊界它會給(x,y)=(0,0)和高度和寬度爲與視圖相同。