如何使用AutoLayout和IB更改基于设备的UITextField高度的高度

时间:2015-06-09 05:24:52

标签: ios objective-c iphone ios6

专家,我正在努力使用AutoLayout根据屏幕大小动态调整UITextField的高度。

例如,我希望在3.5屏幕尺寸上观看时TextFixed高度为25,在4.7屏幕尺寸上观看时为50.

这甚至可以使用IB吗?如果不是,那么正确的编程方式是什么?

3 个答案:

答案 0 :(得分:2)

我不确定你为什么要这样做,但可以在IB中完成。选择文本字段,按住"命令"并选择主视图。从屏幕底部的图钉图标中选择相等的高度。编辑该约束以使其乘数为0.28,并且常量为-111(如果文本字段不是第一项,则反转项目的顺序)。这将使您在480点高的屏幕上高度为25,在568点高的屏幕上高度为50。这些数字来自于求解两个定义约束的方程式,

subview.height = superview.height * multiplier + constant

50 = 568 * m + c和25 = 480 * m + c解决这两个问题得到的值。

答案 1 :(得分:2)

这可以通过在文本字段高度和它的超视图高度之间设置促销高度约束来实现。让我们说如果超视图高度从100变为200,则子视图高度也会根据高度因子按比例变化。enter image description here

答案 2 :(得分:1)

请参阅下图,了解您需要在IB中设置的内容。 code example

autolayout constrain

control alignment