使用自动布局约束旋转后对齐UILabel文本

问题描述 投票:0回答:1

我试图得到一行文本来匹配旋转时的内容,是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)])

结果:

enter image description here

swift autolayout uilabel uicollectionviewcell
1个回答
0
投票

因此,首先要理解的是,虽然您正在旋转标签,但变换不会改变框架 - 意味着,您的底部约束仍然应用于旋转前的底部。

快速解决此问题的方法是为每个标签添加宽度约束,然后将文本对齐方式设置为.right。

我想你也可以通过使用标签对齐的垂直stackView,然后旋转stackView来产生相同的结果。

还有别的,你可能不得不重写draw方法并继承UILabel。

© www.soinside.com 2019 - 2024. All rights reserved.