【问题标题】:The content of UILabel is being truncated after rotation in Swift 4UILabel 的内容在 Swift 4 中旋转后被截断
【发布时间】:2018-08-16 16:46:06
【问题描述】:

我正在使用AutoLayout。我有一个 %10 宽度和 200 固定高度的视图。我在该视图中放置了一个UILabel,边距为0。然后我正在旋转UILabel,更改内容并调用sizeToFit() 函数。在控制器加载时,旋转有效,但内容被截断。在控制器上单击按钮后,UILabel 正在放大并且内容正在调整。

我应该怎么做才能避免这个问题?

注意:我通过调试检查了标签框架的宽度和高度。在sizeToFit() 之后,框架的宽度和高度会按预期发生变化。但是,UI 并不令人耳目一新。我也尝试了label.setNeedsLayout()label.layoutIfNeeded(),但没有任何改变。

对于旋转,我使用以下扩展:

extension UILabel {
    @IBInspectable
    var rotation: Int {
        get {
             return 0
        } set {
            let radians = CGFloat(CGFloat(Double.pi) * CGFloat(newValue) / CGFloat(180.0))
            self.transform = CGAffineTransform(rotationAngle: radians)
        }
    }
}

【问题讨论】:

  • 调用sizeToFit后,尝试设置label.frame.size = CGSize(width: max(label.frame.size.width, label.frame.size.height), height: max(label.frame .size.width, label.frame.size.height))
  • 它没有用。 UI 没有再次刷新。

标签: swift rotation uilabel sizetofit


【解决方案1】:

你可以试试view.layoutIfNeeded() 代替label.layoutIfNeeded()

【讨论】:

    猜你喜欢
    • 2011-11-02
    • 2014-10-20
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多