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

时间:2019-04-11 05:14:27

标签: swift autolayout uilabel uicollectionviewcell

我正在尝试获取一行文本以匹配旋转时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)])

结果: Missaligned text within each cell

1 个答案:

答案 0 :(得分:0)

因此,这里首先要了解的是,尽管旋转标签,但变换不会更改帧-意味着,底部约束仍将应用于旋转之前的底部。

对此的快速解决方案是为每个标签添加宽度限制,然后将文本对齐方式设置为.right。

我想您也可以通过使用标签正确对齐的垂直stackView然后旋转stackView来获得相同的结果。

除此之外,您可能不得不重写draw方法并将UILabel子类化。