用xib创建的视图,我们一般要在控制器中获取对应的view尺寸,但经常我们没法获取到,或者获取的不准
如果通过xib
加载出来的view
尺寸是不正确的, 在xib
中这个view
不管你怎么设置都是治标不治本,我们会在layoutSubviews
通过自己的宽度来计算子控件的尺寸!
//在这里拿出的宽度是不正确的
- (void)awakeFromNib {
}
//对尺寸计算我们一般拿到这个方法中计算(拿到自己宽度计算子控件的尺寸)
- (void)layoutSubviews {
[super layoutSubviews];
//在这里拿到自己的宽度是正确的
}
那我们也会想到, 如果控制器的
view也是xib
创建的, 我们该怎么办 ? 其实不管控制器是在哪里创建的, 我们只要只在viewDidLayoutSubviews
方法中拿到控制器尺寸来计算子控件尺寸都是正确的, 所以说建议大家以后在viewDidLayoutSubviews
计算尺寸:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
//在这里计算尺寸
}
也可以在layoutsubview里面进行计算