【问题标题】:How do I change the height of UITextField height based on device using AutoLayout and IB如何使用 AutoLayout 和 IB 根据设备更改 UITextField 高度的高度
【发布时间】:2015-08-23 18:33:49
【问题描述】:

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

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

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

【问题讨论】:

  • UITextField 没有您可以设置的“高度” - 它的高度是固有且固定的。你为什么要改变它的高度呢?
  • 我想在小屏幕上查看时避免滚动
  • 您是否尝试过不设置文本字段的高度,而只是在顶部和底部之间添加恒定间距?我认为这会根据屏幕的高度拉伸文本字段。
  • 不走运。间距和高度保持不变。
  • 您询问的是文本视图,而不是文本字段。文本字段只显示一行文本,你为什么要滚动?

标签: ios objective-c iphone ios6


【解决方案1】:

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

subview.height = superview.height * 乘数 + 常数

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

【讨论】:

    【解决方案2】:

    这可以通过在文本字段高度和它的超级视图高度之间设置促销高度限制来实现。假设如果父视图高度从 100 变为 200,那么子视图高度也会根据高度因子按比例变化。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-23
        • 1970-01-01
        • 2014-11-29
        • 2012-01-28
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多