前段时间在项目中遇到了一个问题,利用xib来加载控制器的view,但是加载出来的view是不准确的,经过在网上查找资料,发现了原因所在:
原因:原文是通过scrollView.frame = self.view.bounds;这种方式来加载view的。首先,自己是在- (void)viewDidLoad这个方法中加载的view,这时候控制器的view已经加载完毕,但是我们默认子控件的:scrollView.autoresizingMask为none,这就意味着子控件不会随着父控件拉伸,也就是说xib中的view依然会我行我素,保持原有的尺寸,导致了在viewDidLoad这个方法中加载的尺寸是不准确的。
解决方法一:
设置scrollView.autoresizingMask=UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight,让一开始加载view的时候,xib的view随着contentView自动拉伸
解决方法二:
scrollView.frame = [UIScreen mainScreen].bounds;直接设置scrollView的frame为屏幕的frame
解决方法三:
在专门布局子控件尺寸的方法中设置:self.scrollView.frame = self.view.bounds;
网友评论