自动布局不适合 iphone6 中的文本字段

Auto layout not fit for UITextfiled in iphone6

这是我第一次尝试AutoLayout,我不知道是什么错误

当我 运行 在 iPhone 5 上时,它显示为

当我 运行 在 iPhone 6 上时,它显示为

为什么扩展按钮高度和 UITextField 宽度。 我正在学习项目工作的自动布局。

提前致谢。

简而言之,您可能已将第三行按钮的顶部、左侧、右侧和底部边缘固定到其紧邻的边缘。 精心制作的两个按钮'-

  1. 顶部边缘可能已与分段控件的底部边缘固定在一起,并且
  2. 底部、左侧和右侧边缘可能已与 ViewController 的底部、左侧和右侧边缘固定在一起。

这就是为什么当屏幕高度扩展时,按钮假定它们也需要扩展高度。

解决方案:

首先要弄清楚自己想要什么。你有两个选择-

a.You 可能希望将按钮放置在与分段控件保持恒定距离的位置或

b。您可能希望将按钮放在屏幕的底部边缘。

选项a:

不要将按钮的底部边缘固定到其父视图(灰色视图)的底部,否则它会随着屏幕的高度而延伸。因此,只需将其顶部设置为分段控件的底部,这样您的按钮就始终知道它需要的距离,并指定其宽度和高度。

选项b:

将按钮的底部边缘固定到其父视图(灰色视图)的底部。在这种情况下,不要将顶部 space 设置为分段控件。这样,您的按钮将始终知道它需要保持在底部。同样在这种情况下,您需要指定按钮的高度和宽度

最后,随着屏幕宽度的增加,文本字段的宽度也增加了。可能,您将文本字段的左右边缘设置为视图控制器的左右边缘,这很好。您只需按照与文本字段相同的方式设置灰色视图的左右边缘。

一个建议:始终确保您的 element/view 知道如何计算其大小以及开始或结束位置,并指定尽可能少的约束,因为您放置的约束越多,getter 发生冲突的几率。

希望对您有所帮助。