我想将自动布局应用于 UILabel,例如灵活的高度和宽度
Posted
技术标签:
【中文标题】我想将自动布局应用于 UILabel,例如灵活的高度和宽度【英文标题】:I want to apply Auto Layout to UILabel like flexible height & width 【发布时间】:2017-09-19 11:11:29 【问题描述】:我对我的 UILabel 应用了灵活的高度和宽度,现在我想通过使用自动布局来使用这种类型的功能。
我可以将 UILabel 的高度和宽度增加为设备宽度和高度,但 X 和 Y 不会根据设备宽度和高度而改变。
例如:-
Device :- iPhone 7
UILabel :-
X : 20
Y : 120
Width : 300
Height : 30
Device :- iPhone SE
UILabel :-
X : 20
Y : 120
Width : 245
Height : 25
现在的问题是 UILabel 的大小随着纵横比而减小,但 X 和 Y 坐标没有改变。 根据灵活的高度和宽度,将设置为 17 和 102,但在自动布局中它没有改变。
约束:
Constraint Image
【问题讨论】:
使用纵横比 UILables 具有固有大小,这意味着它们会根据内容集增加高度和宽度。如果您真的想增加标签的大小,无论它携带什么内容,只需将前导、尾随、顶部和底部约束应用于父视图。因此,当父视图增长时,它也会拉伸标签。如果 parentView 是屏幕,那么你有你想要的 添加更多信息。 请参考此链接***.com/questions/446405/… 性状变异和大小等级怎么样? 【参考方案1】:您已经为标签固定了 X 和 Y 位置(这不是特定于设备的)
如果你需要实现这个,你需要根据你的视图中心来设置 X 和 Y
我已经创建设置中心 X (For Y Pos)
以及我如何设置 Y Pos 的中心
解释
根据self.view,UIView
的中心是318.5
,从顶部到所需的空间是20
,所以最终的乘数是20:318.5
因为每个视图都有不同的中心
Iphone SE
center 大约是 17
不要忘记将 First Item 设置为 Label.Top
,因为我们需要 TOP 中的 20 个
输出:
希望你清楚:)
【讨论】:
这是工作 :) 非常感谢你提供了一个很好的例子...... Jon Snow @DevDev 很高兴该解决方案有效。你介意接受这个答案吗?它可能会帮助遇到类似问题的人,并有助于引起您的问题的注意。如需更多信息,请查看我们的FAQ。谢谢,欢迎来到!【参考方案2】:我附上了一张图片来动态制作标签高度。选择尾随约束并将关系从“等于”更改为“大于等于”。确保标签的行数应为“0”。
【讨论】:
以上是关于我想将自动布局应用于 UILabel,例如灵活的高度和宽度的主要内容,如果未能解决你的问题,请参考以下文章
如何将 UILabel 限制为 25 个字符并在超过使用自动布局时显示点
将 UILabel 固定到 UICollectionViewCell contentView 按钮的自动布局约束
只需要修复 UIButton 和 UILabel 的自动布局问题