2015-05-26 362 views
3

我想廠景的高度設置爲半個屏幕的高度爲所有設備(當在人像模式中的設備)如何設置屏幕高度一半的視圖?

這是我希望它看起來像:

enter image description here

所以我讓視圖1的高度的自動佈局

@IBOutlet weak var heighConstraint: NSLayoutConstraint! 

我viewWillAppear中的功能在這裏:

override func viewWillAppear(animated: Bool) { 
     self. heighConstraint.constant = self.view.frame.size.height/2 
} 

但是,當我運行我的應用程序時它不工作。這裏有什麼問題?

+0

它顯示什麼?它是在循環內嗎? – Amit89

+0

它顯示了我在主故事板上設置的view1的高度 –

+0

我剛剛編輯了我的問題以清楚地理解。 –

回答

7

嘗試在viewDidLayoutSubviews方法中更改heightConstraint的常數值。

override func viewDidLayoutSubviews() { 
    heightConstraint.constant = self.view.frame.size.height/2 
} 
+0

它的工作! –

0

請試試看。希望它能幫助你。下面的線將取出設備的邊界,並根據它設置框架或高度。

view1.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height/2); 

希望這有助於!好運...

+0

使用自動佈局時,設置框架不能可靠工作。隨着OP的進展,您必須改變約束條件。 –

7

我知道接受的答案是正確的,但有更簡單的方法來做到這一點 -

添加視圖(黃色所示)。將其固定到三個邊緣(頂部,前部和尾部)。我已將其設置爲0,但根據需要更改它。

enter image description here

創建高度爲約束到主查看

enter image description here

enter image description here

打開該約束在檢查查看和編輯乘法器爲0.5。 設置爲0.5取mainView高度的一半高度值。

enter image description here

只要確保=與firstItem和視圖1 = SecondItem的SuperView如圖所示的形象。

+0

嘿。這是「羅馬」的另一種方式,我會注意到這種方法。謝謝 –

+0

不提。 Xcode中的替代品是取之不盡,用之不竭的! –

相關問題