【问题标题】:Aligning UILabel text after rotating with auto-layout constraints使用自动布局约束旋转后对齐 UILabel 文本
【发布时间】: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)])

结果:

【问题讨论】:

    标签: swift autolayout uilabel uicollectionviewcell


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢,效果很好!通过添加左右约束来添加宽度允许我将它们与文本对齐方式对齐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    相关资源
    最近更新 更多