文档章节

iOS自动布局实现Cell和Tableview高度自适应(SDAutoLayout)

GSD_iOS
 GSD_iOS
发布于 2015/12/08 15:32
字数 696
阅读 147
收藏 0

SDAutoLayout

https://github.com/gsdios/SDAutoLayout


☆☆ SDAutoLayout 视频教程:http://www.letv.com/ptv/vplay/24038772.html ☆☆

一行代码搞定自动布局!致力于做最简单易用的Autolayout库。The most easy way for autolayout.

   ☆新增:cell高度自适应 + label文字自适应☆

>>>>> tableview cell 自动高度设置只需要3步

1. >> 设置cell高度自适应:
// cell布局设置好之后调用此方法就可以实现高度自适应(注意:如果用高度自适应则不要再以cell的底边为参照去布局其子view)
[cell setupAutoHeightWithBottomView:_view4 bottomMargin:10];

2. >> 设置 tableview 数据源和代理

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// 2.1 注册模型cell 
[self.tableView startAutoCellHeightWithCellClass:“cell类名” contentViewWidth:“contentview宽度”];

return _rowCount;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 2.2 根据模型取得cell高度
return [self.tableView cellHeightForIndexPath:indexPath model:“model” keyPath:@"model属性名"];
}

*********** 普通view的自动布局讲解 ***********  

   摒弃复杂累赘的约束,利用运行时Runtime在合适的时机布局视图。

0.用法示例

/* 用法一 */
_view.sd_layout
.leftSpaceToView(self.view, 10)
.topSpaceToView(self.view, 80)
.heightIs(130)
.widthRatioToView(self.view, 0.4);  

/* 用法二 (一行代码搞定,其实用法一也是一行代码) */
_view.sd_layout.leftSpaceToView(self.view, 10).topSpaceToView(self.view,80).heightIs(130).widthRatioToView(self.view, 0.4);


>> UILabel文字自适应:
// autoHeightRatio() 传0则根据文字自动计算高度(传大于0的值则根据此数值设置高度和宽度的比值)
_label.sd_layout.autoHeightRatio(0);

*******************************************************************************

    注意:先把需要自动布局的view加入父view然后在进行自动布局,例: 

    UIView *view0 = [UIView new];
    UIView *view1 = [UIView new];
    [self.view addSubview:view0];
    [self.view addSubview:view1];

    view0.sd_layout
    .leftSpaceToView(self.view, 10)
    .topSpaceToView(self.view, 80)
    .heightIs(100)
    .widthRatioToView(self.view, 0.4);

    view1.sd_layout
    .leftSpaceToView(view0, 10)
    .topEqualToView(view0)
    .heightRatioToView(view0, 1)
    .rightSpaceToView(self.view, 10);
*******************************************************************************

1.用法简析

1.1 > leftSpaceToView(self.view, 10)

方法名中带有“SpaceToView”的方法表示到某个参照view的间距,需要传递2个参数:(UIView)参照view 和 (CGFloat)间距数值

1.2 > widthRatioToView(self.view, 1)

方法名中带有“RatioToView”的方法表示view的宽度或者高度等属性相对于参照view的对应属性值的比例,需要传递2个参数:(UIView)参照view 和 (CGFloat)倍数

1.3 > topEqualToView(view)

方法名中带有“EqualToView”的方法表示view的某一属性等于参照view的对应的属性值,需要传递1个参数:(UIView)参照view

1.4 > widthIs(100)

方法名中带有“Is”的方法表示view的某一属性值等于参数数值,需要传递1个参数:(CGFloat)数值


© 著作权归作者所有

共有 人打赏支持
GSD_iOS

GSD_iOS

粉丝 9
博文 1
码字总数 696
作品 8
杭州
加载中

评论(1)

OSC_wxLdjZ
OSC_wxLdjZ
你好,我想开发一个社交app,请加我微信 419940429
cocoapods 最新使用方法

原地址:http://www.cnblogs.com/Crazy-D/p/6421611.html 1、查看ruby源 gem sources -l 2、移除掉原有的源 gem sources --remove https://rubygems.org/ 3、添加国内最新的源。ruby-china ......

大风23333
2017/10/26
0
0
有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?

Apple 算是最重视应用开发体验的公司了.从Xib到StoryBoard,从Auto Layout到Size Class,每一次的更新,都会给iOS应用的开发带来不小的便利.但是,对于绝对多数iOS攻城狮来说,我们依然还是很害怕...

ios122
2015/09/23
0
0
cell 高度自适应 --SDCellAutoHeight

使用SDAutoLayout(Github地址:https://github.com/gsdios/SDAutoLayout )自动布局和cell高度自适应功能制作的高度自适应tableview! SDAutoLayout(一行代码搞定自动布局!) QQ交流群:4...

GSD_iOS
2016/01/04
793
0
Cell 高度自适应--SDAutoLayout-Cell

SDAutoLayout(一行代码搞定自动布局!) QQ交流群:497140713(已满) 519489682(新开),github地址 s://github.com/gsdios/SDAutoLayout SDAutoLayout 只需要 3 步设置就可以实现 cell...

GSD_iOS
2015/11/24
3.1K
0
iOS UITableView reloadData 视图漂移或者闪动解决方法

1.视图漂移或者闪动原因: 因为iOS 11后系统默认开启Self-Sizing,首先要知道Self-Sizing是个什么东东。官方文档是这样解释的:大概就是说我们不用再自己去计算cell的高度了,只要设置好这两...

Jack088
05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
52分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
54分钟前
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0
jetbrains 上传代码到github

设置中找github 获取token 验证是否成功 测试git 生成key,一路回车即可 ssh-keygen -t rsa -C “youremail@example.com” 打开pub复制key,需要再次输入一次密码 验证是否成功,输入yes即可...

阿豪boy
今天
0
0
分布式服务框架(拾遗)

前言 现在的大部分工程都已经是基于分布式架构来处理。所以这里对分布式框架做一个简单的总结 常用的RPC框架 RPC框架原理 RPC(Remote Procedure Call,远程过程调用)一般用来实现部署在不同...

kukudeku
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部