Я пытаюсь получить ширину UIView
внутри пользовательского , чтобы внести некоторые изменения в его внешний вид. Я использую autolayout, однако ширина возвращаемого представления - это то, что определено в файле xib. Это отличается от его фактической ширины, как только автозапуск выложил ячейку.Правильная ширина автовыброса не возвращается на iOS 8
Мой кода в layoutSubviews()
:
override func layoutSubviews() {
super.layoutSubviews()
print(backgroundView.frame.width)
}
Это работает прошивка 9, но не в прошивке 8. Вызов self.setNeedsLayout()
и self.layoutIfNeeded()
не имеет никакого эффекта. Где я могу переместить код так, чтобы он отображал правильную ширину?
Спасибо.
Быстрое исправление может быть, если ширина ячейки покрывает всю ширину, чтобы использовать 'UIScreen.mainScreen(). Bounds.width', или немного вычисления с учетом заполнения. – iphonic
@iphonic У него есть отступы, но да, это может быть вариант. Просто интересно, лучше ли это лучший способ. – Tometoyou
Может быть [это] (http://stackoverflow.com/questions/26629240/ios-autolayout-frame-size -not-set-in-viewdidlayoutsubviews) может вам помочь. – iphonic