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,是不是感觉很简单,哪里写的不对,还请多多指教

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容