【问题标题】:iOS: Correct method to set or increase text field widthiOS:设置或增加文本字段宽度的正确方法
【发布时间】:2017-03-22 20:11:40
【问题描述】:

我们的 UITextField 实例使用“默认”设置。它们会根据用户输入自动扩展。我们想将它们设置为更大的初始宽度,这样它们就不必增加它们的宽度。在保持“自适应”布局的同时,正确的方法是什么?或者这只是与 iOS 最佳实践相反,我们应该保持原样?

【问题讨论】:

  • 默认文本字段具有动态宽度,可以设置与故事板自适应,实际问题是什么?
  • 用户在这些文本字段中输入的标准文本大约比初始文本字段大小大 25%。所以我想增加初始宽度用户不必看到文本字段加宽的效果。
  • 你是说身高?宽度可以设置为任何值初始不是它
  • 如果您希望文本字段具有一定的宽度,请给它一个宽度约束或前导/尾随约束。我不明白问题出在哪里。
  • 我看看那个。我不知道您可以为此目的使用约束。

标签: ios uitextfield adaptive-layout


【解决方案1】:

为了确定视图的大小,自动布局使用两种方法:

- (CGSize)intrisicContentSize //with
- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(UILayoutConstraintAxis)axis;
- (UILayoutPriority)contentHuggingPriorityForAxis:(UILayoutConstraintAxis)axis;

and

 width and height constrtaints (size constraints)
//also the autolayot can use inner constraints, but here it is not important

如果您的大小 constraintsintrisic content size 具有不同的值,则您需要为约束和 intrisicContentSize 设置优先级。

在您的情况下,您可以将low priority 设置为水平轴contentHuggingPriorityForAxis。为宽度约束设置middle priority。将Hight priority 设置为水平轴contentCompressionResistancePriorityForAxis。 之后,如果文本小于宽度约束,则 textField 的宽度将与宽度约束的常量相同。然后文本将具有比约束更大的宽度,文本字段将超出宽度约束。 另外,我建议您使用“required priority

添加约束

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2017-05-17
    • 1970-01-01
    • 2019-10-25
    • 2014-06-02
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多