我希望我的主视图分为两个视图,其中左侧占46%,右侧占据屏幕的54%,减去分区视图的像素。
在这2个视图中,我想在故事板上放置一些子视图。问题是我不能设置2个视图的宽度约束,因为它们的宽度直到运行时才计算,我相信这种约束模糊性是他们的子视图不会尊重我给它们的约束的原因(即:中心水平)。
如何达到我想要的效果?这就是我目前设置2个视图的几何图形的方法:
override func viewWillAppear(_ animated: Bool) {
setGeometry()
}
func setGeometry(){
let width = view.bounds.width
let dividerPoint = width * 0.46
let height = view.bounds.height
leftView.frame = CGRect(x: 0, y: 0, width: dividerPoint, height: height)
divider.frame = CGRect(x: dividerPoint, y: 0, width: 1, height: height)
rightView.frame = CGRect(x: dividerPoint + 1, y: 0, width: width - 1 - dividerPoint, height: height)
}
答案 0 :(得分:1)
您可以通过约束在Interface Builder中执行此操作。使用乘数0.46和0.54(最后还有-1值),从每个视图到主视图添加相等宽度约束。