Xcode 6自动布局灵活宽度

时间:2014-10-28 17:17:40

标签: ios autolayout xcode6

我有一个UITextField使用Xcode 6s自动布局界面,我设置宽度为400点。这在大屏幕设备上看起来很好,但在iPhone 5s上,这些框从包含视图中消失。解决这个问题的正确方法是什么?

有没有办法设置一个约束,如果屏幕大于此值,将使UITextFields宽度为400点,或者只是填充容器视图,而不是在视图外溢出或者我应该使用大小类将UITextField设置为与紧凑视图上的父视图具有相等的宽度。

2 个答案:

答案 0 :(得分:2)

不是在UITextField上设置宽度约束,而是在其左侧和右侧添加水平空间约束。这样,UITextField将自动调整屏幕大小。

答案 1 :(得分:0)

与Kris所说的一样,设置水平空间约束是开始解决这个问题的好方法。

在回复您关于不希望持续“边距”的评论时,您可以执行以下操作:

  1. 在Interface Builder中设置水平空间约束。
  2. 在您的班级中创建IBOutlet类型NSLayoutConstraint(.h或.m;无所谓)。
  3. IBOutlet连接到相应的NSLayoutConstraint
  4. 在您的一个视图生命周期方法(viewDidLoad / viewWillAppear:)中,将约束设置为所需的值。
  5. 听起来你主要是想阻止这个字段跨越iPad上的全屏,所以你可以这样做(假设NSLayoutConstraint被命名为“textFieldLeft”,而{textFieldRight被命名为{{{ 1}}命名为“textField”):

    UITextField