我们的 UITextField 实例使用“默认”设置。它们会根据用户输入自动扩展。我们想将它们设置为更大的初始宽度,这样它们就不必增加它们的宽度。在保持“自适应”布局的同时执行此操作的正确方法是什么?或者这是否与 iOS 最佳实践相反,我们应该保持原样?
问问题
531 次
1 回答
0
要确定视图的大小,自动布局使用两种方法:
- (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
如果您有大小约束和具有不同值的intrisic 内容大小,您需要为约束和 intrisicContentSize 设置优先级。
在您的情况下,您可以将contentHuggingPriorityForAxis设置为水平轴的低优先级。为宽度约束设置中间优先级。为横轴设置contentCompressionResistancePriorityForAxis的Hight 优先级。之后,如果文本小于宽度约束,则 textField 的宽度将与宽度约束的常量相同。然后文本将具有比约束更大的宽度,文本字段将超出宽度约束。我还建议您为最大宽度和所需优先级添加具有“<=”关系的约束
于 2016-11-09T04:08:23.463 回答