ios 自动布局约束可调整视图大小,而不考虑完整约束

cvxl0en2  于 2023-02-26  发布在  iOS
关注(0)|答案(1)|浏览(128)

我有两个按钮,按钮A在左边,按钮B在右边,下面是一个UIView,下面是所有按钮的约束。
按钮A限制:
宽75,高35
前10名进入安全区
底部241至uview(红色)
引导10人进入安全区域
拖尾244到按钮B(右侧)
按钮B约束:
宽75,高35
安全区域前10点
底部241至uiview(红色)
拖10号到安全区域
引导244至按钮A(左侧)
宽75,高35
UIView的约束条件:
顶部241到两个按钮
底部0至安全区域
相对于安全区域,前导和尾随均为零,但尾随不断更改为superview,并且没有编辑选项。
我最大的疑问是,为什么按钮A突然变大了,并且在宽度固定的情况下移动会占用更多的空间?另外,它应该与按钮B相距244点。这个扩展是怎么回事?我给了它x,y,宽度和高度。有什么问题吗?
我附上了照片

a8jjtwal

a8jjtwal1#

自动布局需要一些灵活性来适应不同的屏幕大小和方向。如果你有太少或太多的约束,那么它不能做到这一点。在你的情况下,你有太多的约束。
您正在设置按钮的宽度,并且具有一系列完整的水平约束|-A-B-|
现在,如果屏幕不完全像你指定的那样宽(10+75+244+75+10),它不会是横向的(甚至在不同的设备上是纵向的),那么就必须改变一些东西,但你的布局没有灵活性。
这意味着自动布局必须打破您的约束之一;当您运行应用程序时,控制台中会出现有关冲突约束的错误。
您需要决定在布局中哪些需要保持固定,哪些可以引入灵活性。
您希望什么保持固定?

  • 与按钮前缘/后缘之间的空间?
  • 按钮之间的空间。
  • 纽扣的大小?

他们不可能都被治好。
例如,如果大小和前沿/后沿保持固定,那么您可以去掉按钮之间的244水平空间。
或者,您可以允许按钮增长,将其大小限制更改为〉=75。

相关问题