我仍处于学习约束的学习过程中,所以请耐心等待:
在xCode Interface Builder中,我的UI如下所示:
顶部TextField设置了以下约束:
右侧的反向按钮具有以下约束:
当我在调试器中运行它时,我得到一个配置错误的UI:
这到底发生了什么?为什么我的反向按钮增加到一个巨大的尺寸并移动到一个奇怪的位置,为什么第一个TextField缩小?
理想情况下,我希望我的调试器UI在第一张图像中看起来像我的Interface Builder。我通过界面构建器而不是以编程方式设置这一切。
答案 0 :(得分:1)
如果没有更多信息,我的第一个猜测是图像的内在大小会导致与您在右侧按钮上设置的约束冲突。这很可能导致约束引擎删除您指定的优先级,因为在运行时存在冲突时,它只是半开始随机删除约束,直到没有更多冲突。
你有很多针对superview指定的东西。尽量不要使用superview相对约束,除非你真的指定了对superview的约束,而不是该视图中的其他组件。
始终确保在运行时检查导致冲突被删除的约束冲突的日志消息,因为这几乎总是这样的奇怪布局的原因。
答案 1 :(得分:1)
Top TextField应具有以下内容:
超级视图的顶层空间,超前视图的空间,宽度和高度
按钮应如下所示:
超级视图的顶部空间,超级视图的尾随空间,宽度和高度
第二个TextField应该如下:
顶部空间到顶部TextField,前导空间到superview,相等宽度和相等高度与顶部TextField
答案 2 :(得分:1)
答案 3 :(得分:1)