我想将自动布局应用于 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,例如灵活的高度和宽度的主要内容,如果未能解决你的问题,请参考以下文章

在自动布局中隐藏 UITextView 和 UILabel

如何将 UILabel 限制为 25 个字符并在超过使用自动布局时显示点

将 UILabel 固定到 UICollectionViewCell contentView 按钮的自动布局约束

只需要修复 UIButton 和 UILabel 的自动布局问题

Swift + Autolayout:旋转 UILabel,保持在 UIView 旁边

UILabel 自动布局适合