[英]Swift change aspect ratio constraint programmatically
我们有一个带有UIButton
的 MainStoryBoard 和带有 4 个约束的UIView
foo :
按钮的预期行为应该是它更改 foo 约束,因此 foo 将扩展到全屏,如果再次按下它应该具有以前的纵横比,16:9。
我尝试按照以下步骤使用约束的IBOutlet
执行此操作:
我也玩过高度,什么都没有。 提前致谢。
您的初始约束应如下所示。
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)
collapsedConstraint.isActive = collapsed
expandedConstraint.isActive = !collapsed
被触发的方法应该像这样改变约束。
@objc func tapAction() {
collapsedConstraint.isActive = collapsed
expandedConstraint.isActive = !collapsed
superView.layoutIfNeeded()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.