iOS:正确设置或增加文本字段宽度的方法

时间:2016-11-09 03:25:50

标签: ios uitextfield adaptive-layout

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

1 个答案:

答案 0 :(得分:0)

要确定视图的大小,autolayout使用两种方法:

- (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的宽度与宽度约束的常量相同。然后文本将具有更多宽度然后约束,textField将增长出宽度约束。 另外我建议您使用"< ="添加约束。最大宽度与required priority

的关系