使用自动布局约束旋转后对齐 UILabel 文本
Posted
技术标签:
【中文标题】使用自动布局约束旋转后对齐 UILabel 文本【英文标题】:Aligning UILabel text after rotating with auto-layout constraints 【发布时间】:2019-04-11 05:14:27 【问题描述】:我正在尝试获取一行文本以匹配旋转时的内容,即UILabel
的顶部。目前,在每个UICollectionViewCell
中,我正在设置将标签旋转 180 度。标签的文本左对齐,但如附图所示,这应该没有任何区别。
由于UICollectionViewController
使单元格出列,我无法在执行此操作之前设置文本,因此此时在构造函数中未设置标签的文本,但是,我已经预先测试将其设置为“AAA”这没有任何效果。
label.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2)
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: centerXAnchor),
label.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -15)])
结果:
【问题讨论】:
【参考方案1】:因此,首先要了解的是,尽管您正在旋转标签,但变换不会改变框架 - 意思是,您的底部约束仍然应用于旋转前的底部。
对此的快速解决方法是为每个标签添加宽度约束,然后将文本对齐方式设置为 .right。
我想你也可以通过使用标签右对齐的垂直 stackView 来获得相同的结果,然后旋转 stackView。
除此之外,您可能必须重写 draw 方法并将 UILabel 子类化。
【讨论】:
谢谢,效果很好!通过添加左右约束来添加宽度允许我将它们与文本对齐方式对齐。以上是关于使用自动布局约束旋转后对齐 UILabel 文本的主要内容,如果未能解决你的问题,请参考以下文章