iOS-使用自动布局设置UILabel的最大宽度
我有一个iOS-使用自动布局设置UILabel的最大宽度,ios,uiview,autolayout,uilabel,Ios,Uiview,Autolayout,Uilabel,我有一个ui标签,包含在一个大小固定的ui视图中。ui标签具有动态文本。如何确保UILabel永远不会大于包含的UIView 在使用AutoLayout之前,只需使用AdjustsFontSizeToFitWidth即可实现这一点,但我无法再使用AutoLayout实现这一点 我应该从ui标签向ui视图添加哪些约束?现在它只是引导对齐。对于此类视图,有一些特殊的方法,如UILabel(contentHugging和contentCompressionResistance),但它们已经启用。所以,
ui标签
,包含在一个大小固定的ui视图
中。ui标签
具有动态文本。如何确保UILabel
永远不会大于包含的UIView
在使用AutoLayout
之前,只需使用AdjustsFontSizeToFitWidth
即可实现这一点,但我无法再使用AutoLayout实现这一点
我应该从
ui标签
向ui视图
添加哪些约束?现在它只是引导对齐。对于此类视图,有一些特殊的方法,如UILabel
(contentHugging
和contentCompressionResistance
),但它们已经启用。所以,您只需禁用标签的宽度就可以增长到superview的宽度
NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:self.label attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:self.label.superview attribute:NSLayoutAttributeWidth multiplier:1.0f constant:0.0f];
[self.label addConstraint:widthConstraint];
我将添加左、上、右约束,如下所示: 在情节提要中,只需单击几下:
- 选择您的标签
- 在“添加约束”面板(右下角)中,选择要添加的约束
拖动标签并调整其大小以适应整个屏幕的宽度,可能会从两侧留下一些填充。 设置4个约束条件: 1) 标签的高度。 2) 要查看的顶部空间。 3) 引导空间到视图。 4) 要查看的尾随空间
最后将标签的水平压缩阻力优先级设置为1000。Swift 3和4
var widthConstraint = NSLayoutConstraint(item: label, attribute: .width, relatedBy: .lessThanOrEqual, toItem: label.superview, attribute: .width, multiplier: 1.0, constant: 0.0)
label.addConstraint(widthConstraint)
宽度你对这个问题的评论效果非常好,只有一件事:我如何调整UILabel的字体大小,使其符合我给它的最大宽度?myLabel.adjustsFontSizeToFitWidth=YES;myLabel.minimumScaleFactor=.5f;这对我有用!非常感谢,帖木儿