Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何以编程方式为视图更改IBMoutlet的aspectRatio?_Ios_Swift_Xcode - Fatal编程技术网

Ios 如何以编程方式为视图更改IBMoutlet的aspectRatio?

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

好的,这是我的限制。

该视图与centreX和centreY对齐,并具有前导、尾随、顶部和底部as>=0。
它还有另一个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它工作得很好,谢谢您的帮助。稍后选项似乎起作用,将让您知道稍后选项似乎起作用,将让您知道