2015-05-26 195 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中的替代品是取之不尽,用之不竭的! –

相关问题