我试图得到一行文本来匹配旋转时的内容,是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)])
结果:
因此,首先要理解的是,虽然您正在旋转标签,但变换不会改变框架 - 意味着,您的底部约束仍然应用于旋转前的底部。
快速解决此问题的方法是为每个标签添加宽度约束,然后将文本对齐方式设置为.right。
我想你也可以通过使用标签对齐的垂直stackView,然后旋转stackView来产生相同的结果。
还有别的,你可能不得不重写draw方法并继承UILabel。