Содержимое 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()