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

时间:2015-05-26 11:03:08

标签: ios xcode swift autolayout

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

这就是我想要的样子:

enter image description here

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

    @IBOutlet weak var heighConstraint: NSLayoutConstraint!

我的viewwillappear函数在这里:

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

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

3 个答案:

答案 0 :(得分:18)

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

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

enter image description here

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

enter image description here

enter image description here

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

enter image description here

确保FirstItem = View1和SecondItem = SuperView,如图所示。

答案 1 :(得分:7)

尝试在heightConstraint方法中更改viewDidLayoutSubviews的常量值。

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

答案 2 :(得分:0)

请试一试。希望它会帮助你。下面的行将采用设备的边界,并根据它设置框架或高度。

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

希望这会有所帮助!!!祝你好运......