我有一个视图,其中有一系列按钮,当其中一个按钮被选中时,我需要以编程方式在所有其他按钮的顶部添加另一个按钮,然后更改所有按钮的高度,以免丢失空间到屏幕底部。
问题是我需要为此视图打开自动布局,但因此我无法调整大小或更改按钮的位置。
我的问题是如何“覆盖”视图(按钮)中某些对象的自动布局,以在选择按钮时更改它们的布局。
谢谢
我有一个视图,其中有一系列按钮,当其中一个按钮被选中时,我需要以编程方式在所有其他按钮的顶部添加另一个按钮,然后更改所有按钮的高度,以免丢失空间到屏幕底部。
问题是我需要为此视图打开自动布局,但因此我无法调整大小或更改按钮的位置。
我的问题是如何“覆盖”视图(按钮)中某些对象的自动布局,以在选择按钮时更改它们的布局。
谢谢
自动布局能够满足您描述的用例。视图的高度可以压缩,以便为更多按钮腾出空间。
在每个按钮上使用- (void)setContentCompressionResistancePriority:(UILayoutPriority)priority forAxis:(UILayoutConstraintAxis)axis
并将优先级设置为较低的数字(即 <250)。由于您有一个垂直行,因此轴将为UILayoutConstraintAxisVertical
.
您必须调用-setNeedsUpdateConstraints
所有按钮的超级视图才能显示新的约束。