我正在尝试以编程方式设置几个视图。在主视图上,我添加了两个子视图,一个子视图固定在顶部,另一个子视图固定在底部:
view.addSubview(buttonsLabel)
buttonsLabel.translatesAutoresizingMaskIntoConstraints = false
buttonsLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
buttonsLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
buttonsLabel.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -20).isActive = true
buttonsLabel.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5, constant: -20).isActive = true
calcLabel.layer.cornerRadius = 25
view.addSubview(calcLabel)
calcLabel.translatesAutoresizingMaskIntoConstraints = false
calcLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
calcLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
calcLabel.topAnchor.constraint(equalTo: view.topAnchor, constant: 40).isActive = true
calcLabel.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5, constant: -40).isActive = true
这很好,两个视图都是帧高度的50%(减去常数),并且都显示了(一个在顶部,一个在底部)。但当我尝试添加第三个视图时,它是框架高度的75%,应该放在其他两个视图的顶部,布局被破坏,所有内容几乎都被移到了框架之外。
我试图再次将第三个视图锚定到底部:
thirdView.layer.cornerRadius = 25
view.addSubview(thirdView)
thirdView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
thirdView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
thirdView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
thirdView.heightAnchor.constraint(equalTo: view.heightAnchor,multiplier: 0.75).isActive = true
这就是所有内容的外观(左视图为两个视图,右视图为顶部的第三个视图:
我是否正确地进行了锚定和约束(或以更好的方式),以及如何为第三个视图添加约束,使其成为帧高度的75%,并像图像中一样放置在所有视图的顶部。