UIScrollView 中使用 SDAutoLayout 对页面进行动态布局

直接上代码
1、设置代理并创建 UIScrollView

_scrollView = [[UIScrollView alloc] init];
_scrollView.backgroundColor = RGBColor(237, 240, 244);
_scrollView.delegate = self;
//alwaysBounceVertical,当 UIScrollView 的 contentSize 小于父视图的 frame 时仍然可以具有弹性效果
_scrollView.alwaysBounceVertical = YES;
_scrollView.showsHorizontalScrollIndicator = NO;
_scrollView.showsVerticalScrollIndicator = YES;
[self.view addSubview:_scrollView];
//设置 _scrollView 的 frame
_scrollView.sd_layout.spaceToSuperView(UIEdgeInsetsZero);
//这里设置 BOTTOM_HEIGHT 是底部还有个按钮,定义了一个全局
_scrollView.sd_layout.bottomSpaceToView(self.view, BOTTOM_HEIGHT);

2、创建控件 设置 frame,并添加到 _scrollView 上

_view1 = [[UIView alloc] init];
_view1.backgroundColor = [UIColor whiteColor];
[_scrollView addSubview:_view1];
view1.sd_layout.topSpaceToView(_scrollView, 0)
.leftSpaceToView(_scrollView, 0)
.rightSpaceToView(_scrollView, 0)
.heightIs(100);

_view2 = [[UIView alloc] init];
_view2.backgroundColor = [UIColor whiteColor];
[_scrollView addSubview:_view2];
view1.sd_layout.topSpaceToView(_view1, 0)
.leftSpaceToView(_scrollView, 0)
.rightSpaceToView(_scrollView, 0)
.heightIs(100);
。。。
以下省略...

3、将创建的控件添加到 _scrollView 上,并设置 _scrollView 的 ContentSize大小,bottomMargin 是 ContentSize 与 _scrollView 的间距

[_scrollView sd_addSubviews:@[_view1,_view2,_view3,_view4,_view5]];
[_scrollView setupAutoContentSizeWithBottomView:_view5 bottomMargin:10];

精简来说就是:

//设置 _scrollView 的 frame
_scrollView.sd_layout.spaceToSuperView(UIEdgeInsetsZero);
[_scrollView sd_addSubviews:@[_view1,_view2,_view3,_view4,_view5]];
[_scrollView setupAutoContentSizeWithBottomView:_view5 bottomMargin:10];

三步创建自适应高度的 UIScrollView,是不是感觉很简单,哪里写的不对,还请多多指教

你可能感兴趣的:(UIScrollView 中使用 SDAutoLayout 对页面进行动态布局)