在Swift 4中轮换后,UILabel的内容被截断

时间:2018-03-08 10:49:54

标签: swift rotation uilabel sizetofit

我正在使用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)
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以尝试使用view.layoutIfNeeded()代替label.layoutIfNeeded()