如何根据所使用的iPhone使UITextField适当调整其大小?

时间:2015-01-08 03:22:24

标签: ios cocoa-touch uiscrollview uitextfield nslayoutconstraint

我希望我的UITextField用尽大部分屏幕。我已经尝试在文本字段上设置约束,但这不起作用。我正在使用iPhone 5s和6进行测试。

在iPhone 5s上获得合适的尺寸会在iPhone 6的UITextField的每一侧留下大的空间;当我在iPhone 6上设置所需尺寸时,UITextField对于iPhone 5s上的屏幕来说太大了。

我认为在设置滚动视图等时使用的原理相同。这些UITextField位于滚动视图中,我对使用不同设备的滚动视图没有任何问题。

我已经尝试过尺寸以适应但这会使文字字段太小。我会提供代码,但我在Interface Builder中完成了所有这些操作。

enter image description here

enter image description here

这些字段位于我的scrollView的contentView中。

我不介意Objective-C或Swift答案。

2 个答案:

答案 0 :(得分:2)

问题是,自动布局会根据内容自动为您计算出scrollView的内容大小。如果你没有告诉它contentView的宽度,它必须通过scrollView中项目的约束来解决这个问题。即使您的textViews固定在scrollView的左侧和右侧,您也必须指定它们的宽度,以便Auto Layout可以计算出scrollView内容的宽度。要解决此问题,请将contentView添加到scrollView,该scrollView将成为scrollView中的单个顶级项目。所有其他项目将作为contentView的子视图添加。

  1. 将contentView添加到scrollView。将其左,上,右和下边缘固定到scrollView。将其宽度限制为等于scrollView的宽度。为此,打开“文档大纲视图”,控制从滚动视图包含的视图拖动到滚动视图,然后从弹出窗口中选择“等宽”。限制其高度足以容纳您的所有内容。这将允许scrollView仅垂直滚动。

  2. 将textViews尾随和前导约束到contentView。它们的宽度会自动伸展以填充每部手机的空间。

答案 1 :(得分:0)

假设您有单个文本字段。然后,您必须应用以下约束来实现所有约束:

  1. 左侧间距
  2. 右间距
  3. 顶部间距
  4. width
  5. 身高
  6. 宽度和高度限制是最重要的一个。当满足所有约束时,线条将变为蓝色。试试这个。