我们有一个MainStoryBoard,其中有一个UIButton
和一个UIView
foo ,有4个约束条件:
该按钮的预期行为应该是它更改foo约束,以便foo将扩展到全屏,并且如果再次按下该按钮,则它应具有以前的宽高比16:9。
我尝试按照以下步骤使用约束的IBOutlet
来做到这一点:
我也打得很高,一无所有。预先感谢。
答案 0 :(得分:0)
您的初始约束应如下所示。
NSLayoutConstraint.activate([
foo.leadingAnchor.constraint(equalTo: superView.leadingAnchor),
foo.trailingAnchor.constraint(equalTo: superView.trailingAnchor),
foo.topAnchor.constraint(equalTo: superView.topAnchor)
])
let collapsedConstraint = foo.heightAnchor.constraint(equalTo: foo.widthAnchor, multiplier: 9/16)
let expandedConstraint = foo.bottomAnchor.constraint(equalTo: superView.bottomAnchor)
if collapsed {
collapsedConstraint.isActive = true
} else {
expandedConstraint.isActive = true
}
并且触发的方法应更改这样的约束。
@objc func tapAction() {
if collapsed {
collapsedConstraint.isActive = true
expandedConstraint.isActive = false
} else {
collapsedConstraint.isActive = false
expandedConstraint.isActive = true
}
superView.layoutIfNeeded()
}