一、问题描述:
一般用scrollview就是为了解决视图超过屏幕长度的问题,使用代码来写这样的视图,只要必要参数都设置了就不会出现问题。但是使用xib拖得时候就出现了视图无法滑动的问题。
二、问题分析:
结合stackoverflow分析,发现这里和autolayout这个属性有关。另外推测xib加载的视图超出显示范围时,视图就不会被加载进来(xib中)
三、解决
1.创建空nib,拖进一个scrollview
2.在scrollview中添加view(这个view是重点操作对象)
3.设置view的四个方向的约束都是0,在stack中发现bottom设为1时候可以避免一个警告,这里需要额外加一个height的约束,这个值需要大于整个scrollview的高度
4.在需要添加view的地方把这个nib加进来就好
NSArray *viewArray = [[NSBundle mainBundle] loadNibNamed:@"nibName" owner:self options:nil];
UIScrollView *main = [viewArray firstObject];
main.frame = CGRectMake(0,0,Screen_width,Screen_height);
[self.view addSubView:main];
运行看结果吧!
这里注意没有设置contentSize仍然可以滑动显示!这里的contentSize是根据View的尺寸来的,在设置约束的时候view的bottom是0,而高度也被设定了,view又在scrollView内,这样scrollView为了满足显示view就被拉伸了