Содержимое UILabel усекается после поворота в Swift 4

Я использую AutoLayout, У меня есть вид с шириной%10 и фиксированной высотой 200. Я поместил UILabel в этом виде с 0 полей. Затем я вращаю UILabel, изменение контента и вызов sizeToFit() функция. При загрузке контроллера вращение работает, но содержимое усекается. После того, как я нажал кнопку на контроллере, UILabel расширяется, а контент вписывается.

Что я должен сделать, чтобы избежать этой проблемы?

Примечание: я проверил ширину и высоту рамки метки с помощью отладки. После sizeToFit() ширина и высота рамы меняется, как и ожидалось. Тем не менее, пользовательский интерфейс не обновляется. Я тоже пробовал 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 ответ

Ты можешь попробовать view.layoutIfNeeded() вместо label.layoutIfNeeded()

Другие вопросы по тегам