iOS-Xib获取view尺寸的问题

用xib创建的视图,我们一般要在控制器中获取对应的view尺寸,但经常我们没法获取到,或者获取的不准

如果通过xib加载出来的view尺寸是不正确的, 在xib中这个view不管你怎么设置都是治标不治本,我们会在layoutSubviews通过自己的宽度来计算子控件的尺寸!

//在这里拿出的宽度是不正确的
- (void)awakeFromNib {
//对尺寸计算我们一般拿到这个方法中计算(拿到自己宽度计算子控件的尺寸)
- (void)layoutSubviews {
[super layoutSubviews];
//在这里拿到自己的宽度是正确的
 }

那我们也会想到, 如果控制器的view也是xib创建的, 我们该怎么办 ? 其实不管控制器是在哪里创建的, 我们只要只在viewDidLayoutSubviews方法中拿到控制器尺寸来计算子控件尺寸都是正确的, 所以说建议大家以后在viewDidLayoutSubviews计算尺寸:
- (void)viewDidLayoutSubviews
 [super viewDidLayoutSubviews];
//在这里计算尺寸 
}
也可以在layoutsubview里面进行计算
posted @ 2019-07-19 10:35  高晓牛  阅读(2370)  评论(0编辑  收藏  举报