2016-11-09 74 views
0

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

+0

默认文本框添加约束具有动态的宽度和可设置的自适应与分镜,有什么实际问题? – Tj3n

+0

用户在这些文本字段中输入的标准文本比初始文本字段大小大约大25%。所以我想增加初始宽度,用户不必看到文本字段扩大的效果。 –

+0

你是指身高?宽度可以设置为任何值initialy isnt它 – Tj3n

回答

0

要确定一个视图的大小自动版式采用两种方法:对限制和intrisicContentSize

- (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有不同的价值观,你喊设置优先级。

对于您的情况,您可以为横轴设置contentHuggingPriorityForAxis设置low priority。宽度约束设置为middle priority。水平轴为contentCompressionResistancePriorityForAxis设置Hight priority。 之后,如果文本小于宽度约束,则textField的宽度约束的宽度与常量宽度相同。然后文本将有更多的宽度,然后约束,textField将生长出宽度约束。 此外,我建议你与最大宽度“< =”关系,required priority