Ios 如何以编程方式为视图更改IBMoutlet的aspectRatio?
好的,这是我的限制。 该视图与centreX和centreY对齐,并具有前导、尾随、顶部和底部as>=0。Ios 如何以编程方式为视图更改IBMoutlet的aspectRatio?,ios,swift,xcode,Ios,Swift,Xcode,好的,这是我的限制。 该视图与centreX和centreY对齐,并具有前导、尾随、顶部和底部as>=0。 它还有另一个aspectRatio约束。 现在我已经创建了aspectRation约束的@IBOutlet @IBOutlet weak var contentViewAspectRatio: NSLayoutConstraint! 问题是我不知道如何以编程方式更改aspectRatio if value { //Change aspect ratio to 16/9 } el
它还有另一个aspectRatio约束。
现在我已经创建了aspectRation约束的
@IBOutlet
@IBOutlet weak var contentViewAspectRatio: NSLayoutConstraint!
问题是我不知道如何以编程方式更改aspectRatio
if value {
//Change aspect ratio to 16/9
} else {
//Change aspect ratio to 19.5/9
}
任何帮助都将不胜感激。更改纵横比意味着更改只读约束的乘数,因此您需要停用该约束并使用新乘数创建新的1
let newCon = contentViewAspectRatio.addConstraintWithMul(0.3)
parentViewOfConstraint.removeConstraint(contentViewAspectRatio)
parentViewOfConstraint.addConstraint(newCon)
view.layoutIfNeeded()
contentViewAspectRatio = newCon
另一个选项是创建具有2个不同方面的2个约束,并在已知方面数量有限的情况下使用其活动/优先级状态。更改纵横比意味着更改只读约束的乘数,因此您需要停用该约束并使用新特性创建新的1倍增器
let newCon = contentViewAspectRatio.addConstraintWithMul(0.3)
parentViewOfConstraint.removeConstraint(contentViewAspectRatio)
parentViewOfConstraint.addConstraint(newCon)
view.layoutIfNeeded()
contentViewAspectRatio = newCon
另一个选项是创建具有两个不同方面的两个约束,并使用其活动/优先级状态。如果您的方面数量有限且已知,则可以使用您的两个值创建两个约束,并根据
值激活/停用它们。将其中一个设置为比另一个稍低的优先级,否则您将在InterfaceBuilder中发生冲突。请看,您不能更改乘数。@Larme它工作得很好,谢谢您的帮助。您可以使用两个值创建两个约束,并根据值激活/停用它们。将其中一个优先级设置为略低于另一个优先级,否则您将在InterfaceBuilder中发生冲突。请看,您无法更改乘数。@Larme它工作得很好,谢谢您的帮助。稍后选项似乎起作用,将让您知道稍后选项似乎起作用,将让您知道