如何设置屏幕高度为一半的视图?

Hie*_*ham 7 xcode ios autolayout swift

我想将view1的高度设置为所有设备屏幕高度的一半(当设备处于纵向模式时)

这是我想要的样子:

在此输入图像描述

所以我做了View1高度的自动布局

    @IBOutlet weak var heighConstraint: NSLayoutConstraint!
Run Code Online (Sandbox Code Playgroud)

我的viewwillappear函数在这里:

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

但是当我运行我的应用程序时,它不起作用.这里有什么不对?

Jen*_*ose 22

我知道接受的答案是正确的,但有更简单的方法 -

添加视图(以黄色显示的视图).将其固定到三个边缘(顶部,前部和尾部).我将其设置为0,但根据您的需要进行更改.

在此输入图像描述

创建高度等于约束主视图为

在此输入图像描述

在此输入图像描述

在Inspector视图中打开Constraint,并将乘数编辑为0.5.将其设置为0.5需要高度值为mainView高度的一半.

在此输入图像描述

只需确保FirstItem = View1和SecondItem = SuperView,如图所示.


tou*_*bun 9

尝试改变方法中heightConstraint的常量值viewDidLayoutSubviews.

override func viewDidLayoutSubviews() {
    heightConstraint.constant = self.view.frame.size.height / 2
}
Run Code Online (Sandbox Code Playgroud)