我在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.我认为在更改约束后,框架不会立即更新。
如何检测我的视图何时成功更新?
我想检测我的视图何时成功更新的原因是因为我希望在将按钮宽度更改为40之后在中心水平和UIButton
下方显示下拉列表
答案 0 :(得分:1)
不会立即设置框架,它将在下一个布局过程中设置。
但你可以这样做
override func layoutSubviews() {
super.layoutSubviews()
// in this method, the frame has been set.
}
// This will force autolayout to determine the frame
// without waiting for the next layouting schedule
self.layoutIfNeeded()