iOS自动布局实现Cell和Tableview高度自适应(SDAutoLayout)
2015-12-08 15:36
706 查看
SDAutoLayout
https://github.com/gsdios/SDAutoLayout
☆☆ SDAutoLayout 视频教程:http://www.letv.com/ptv/vplay/24038772.html ☆☆
一行代码搞定自动布局!致力于做最简单易用的Autolayout库。The most easy way for autolayout.
![](https://camo.githubusercontent.com/f6b66d77990b92bc6c5ef85a0cb91a9a7a966d81/687474703a2f2f7777322e73696e61696d672e636e2f626d6964646c652f3962383134366564677731657961316a763935316967323038633065747176352e676966)
![](https://camo.githubusercontent.com/eb79b931e5191f02f9cd7c3b522abc520b18d1bc/687474703a2f2f7777312e73696e61696d672e636e2f6d773639302f39623831343665646777316578346f723569786b6a6a32306b36306777337a672e6a7067)
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)数值
PS:
和Masonry有什么异同?
1.代码更简洁,方法语义更直观,可以更快布局
2.性能方面和masonry相当,某些情况下性能还要优于masonry
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); > a11d > 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)数值
和Masonry有什么异同?
1.代码更简洁,方法语义更直观,可以更快布局
2.性能方面和masonry相当,某些情况下性能还要优于masonry
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Jquery与JS两种方法仿twitter/新浪微博 高度自适应无缝滚动实现代码
- jQuery.lazyload+masonry改良图片瀑布流代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- jQuery Masonry瀑布流插件使用详解
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件