Обнаружение просмотра успешно обновило фрейм
У меня есть UIButton
в UIView
и я установил ширину ограничения для UIButton
программно внутри (instancetype)initWithFrame:(CGRect)frame {
с помощью PureLayout
лайк
self.errorButtonConstraintWidth = [self.btnError autoSetDimension:ALDimensionWidth toSize:5];
self.errorButtonConstraintWidth.constant = 40;
NSLog(@"afterChangeContraintWith = %f",self.btnError.frame.size.width);
Но после установки ограничения с Log
для кнопки печати кадра всегда печатать 0. Я думаю, что после изменения ограничения с рамкой не обновлять сразу.
Как я могу определить, успешно ли обновился мой вид?
Причина, по которой я хочу определить, когда мой вид обновился успешно, потому что я хочу отобразить выпадающий список по центру и ниже UIButton
после изменения ширины кнопки до 40
1 ответ
Решение
Рамка не будет установлена сразу, она будет установлена в следующем процессе размещения.
но ты можешь сделать это
Подход 1
override func layoutSubviews() {
super.layoutSubviews()
// in this method, the frame has been set.
}
Подход 2
// This will force autolayout to determine the frame
// without waiting for the next layouting schedule
self.layoutIfNeeded()