登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

一行代码搞定自动布局 - SDAutoLayout

[复制链接]
来自: 李世铿 分类: iOS精品源码 上传时间: 2017-2-17 20:23:50

项目介绍:

项目简介

SDAutoLayout(一行代码搞定自动布局!)

众多公司和个人开发者已经使用本库布局:

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

Pod支持:

支持pod: pod 'SDAutoLayout', '~> 2.1.3'

如果发现pod search SDAutoLayout 搜索出来的不是最新版本,需要在终端执行cd转换文件路径命令退回到desktop,然后执行pod setup命令更新本地spec缓存(可能需要几分钟),然后再搜索就可以了

更新记录:

2016.08.12 -- 实现在tableview插入新的cell数据时自动缓存管理

2016.06.30 -- 增加多参照view的leftSpaceToView和topSpaceToView约束,例:topSpaceToView(@[self.view3, self.view4], 30)

2016.06.24 -- 修复给button设置约束时在iOS8.x系统中出现的崩溃问题;发布2.1.2版本

2016.06.23 -- 实现删除某行cell时自动调整height缓存

2016.05.16 -- 修复用xib生成的view出现的部分约束失效问题(发布pod2.0.0版本)

2016.05.15 -- 增加设置偏移量offset功能

2016.04.30 -- 修复之前button作为父视图时内部控件不能自动布局问题

2016.04.05 -- 修复宽度自适应label在重用时候偶尔出现的宽度计算不准确的问题(发布pod1.51版本)

2016.03.23 -- 升级了缓存机制,新版本在tableview滑动cell时候流畅度和性能提升20%以上(发布pod1.50版本)

2016.01.23 -- 增加label对attributedString的内容自适应

2016.01.21 -- 实现tableview局部刷新cell高度缓存的自动管理

2016.01.20 -- demo适配在ios7上的屏幕旋转问题

2016.01.18 -- 推出“普通简化版”tableview的cell自动高度方法(推荐使用),原来的需2步设置的普通版方法将标记过期

2016.01.13 -- 增加在不确定bottom view的情况下的cell高度自适应方法

2016.01.07 -- 1.增加 scrollview 横向内容自适应功能;2.增加view宽高相等的功能

2016.01.03 -- 增加任何类型对象都可以实现一行代码搞定cell高度自适应;增加文档注释

2015.12.08 -- 重大升级:1.支持scrollview内容自适应;2.任意添加或者修改约束不冲突;3.性能提升40%以上;4.添加最大、最小宽高约束

部分SDAutoLayout的DEMO:




用法简介

tableview和cell高度自适应:

普通(简化)版【推荐使用】:tableview 高度自适应设置只需要2步

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

[cell setupAutoHeightWithBottomView:_view4 bottomMargin:10];

  1. 获取自动计算出的cell高度

  • (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath
    {
    id model = self.modelsArray[indexPath.row];
    // 获取cell高度
    return [self.tableView cellHeightForIndexPath:indexPath model:model keyPath:@"model" cellClass:[DemoVC9Cell class] contentViewWidth:cellContentViewWith];
    }

升级版(适应于cell条数少于100的tableview):tableview 高度自适应设置只需要2步

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

[cell setupAutoHeightWithBottomView:_view4 bottomMargin:10];

  1. 获取自动计算出的cell高度

  • (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath
    {

// 获取cell高度
return [self cellHeightForIndexPath:indexPath cellContentViewWidth:[UIScreen mainScreen].bounds.size.width];
}
普通view的自动布局:

用法示例

/ 用法一 /
_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 > 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

// 如果需要用“断言”调试程序请打开此宏(位于UIView+SDAutoLayout.h)

//#define SDDebugWithAssert

github地址:https://github.com/gsdios/SDAutoLayout

code4app

相关源码推荐:

我来说两句
*滑动验证:
所有评论(194)
AlonMessi 2017-2-17 20:23:55
感谢分享,楼主V5~
回复
hellokenken 2017-2-17 20:23:57
感谢大神分享,必须顶!
回复
phoiu 2017-2-17 20:24:33
code4app确实是个好地方,必须支持~
回复
BlueManlove 2017-2-17 20:25:43
code4app好的内容真的很多~赞
回复
kengsir 2017-2-17 20:26:00
感谢大神分享,必须顶!
回复
littleRed 2017-2-17 20:26:27
帮帮顶顶!!
回复
supershark 2017-2-17 22:15:04
虽不明,但觉厉!
回复
supershark 2017-2-17 22:15:20
楼主威武啊,Code4App有你更给力!
回复
code4app热心网友 2017-2-18 01:16:47
精华内容,楼主V5!
回复
提取码:  下载次数:269 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
2654 0 269
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表