介绍 :一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,简单易用的AutoLayout库
github地址:
https://github.com/gsdios/SDAutoLayout (也可以Cocoapods直接到工程上去) .
对于一个小白来说是再好不过的一个工具了!!
简单布局使用:
由此看出SDAutoLayout跟线性布局一样的 ,同时给出多种布局选择参数:
.leftEqualToView(_view); (左间距跟参照_View距离相同,以此类推上下左右有).
.widthRatioToView(_View,1);(设置宽度[高也一样]是参照_View的多少倍,1代表宽一样 也可以零点几倍这样).
.widthEqualToHeight(_View); (设置宽度与参照_View高度相同[高也一样] 设置图标时好用).
还有设置最大,最小值的根据个人情况去文档查看吧!!!
富文本自适应(单行):
[_View setSingleLineAutoResizeWithMaxWidth:0]; (MaxWidth指的是最大距离)
Lable高度自适应:
一般设置固定宽度和行数numberOfLines = 0 再加.autoHeightRatio(0);
UIView 高度、宽度自适应相关方法:
UIScrollView 内容竖向自适应、内容横向自适应方法:
UIButton 设置button根据单行文字自适应:
更多方法可以自己查阅 下面是我用它写个标签选择器(复选):
UITableView 方法,cell自适应高度
1 .第一步 Cell布局好,UIView布局一样 .记得最后添加
[self setupAutoHeightWithBottomView:self.removeButton bottomMargin:10];
不然无法获取高度!
2 .第二步 ,在代理返回里面添加
/**
* 返回计算出的cell高度
* model : cell的数据模型实例
* keyPath : cell的数据模型属性的属性名字符串(即kvc原理中的key)
* cellClass : 当前的indexPath对应的cell的class
* contentViewWidth : cell的contentView的宽度
*/
3 .第三步 缓存cell (有二级菜单不适合)
附加 UIWebView 内容自适应
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//获取页面高度(像素)
NSString * clientheight_str = [webView stringByEvaluatingJavaScriptFromString: @"document.body.clientHeight"];
float clientheight = [clientheight_str floatValue];
CGFloat h =(kSCREEN_HEIGHT-64)*18/100+20;
NSLog(@"高度==%lf",h);
webView.frame = CGRectMake(0,h, kSCREEN_WIDTH, clientheight);
//获取WebView最佳尺寸(点)
CGSize frame = [webView sizeThatFits:webView.frame.size];
//获取内容实际高度(像素)
NSString * height_str= [webView stringByEvaluatingJavaScriptFromString: @"document.getElementById('webview_content_wrapper').clientHeight + parseInt(window.getComputedStyle(document.getElementsByTagName('body')[0]).getPropertyValue('margin-top')) + parseInt(window.getComputedStyle(document.getElementsByTagName('body')[0]).getPropertyValue('margin-bottom'))"];
height = [height_str floatValue];
//内容实际高度(像素)* 点和像素的比
height = height * frame.height / clientheight;
//再次设置WebView高度(点)
webView.frame = CGRectMake(0,h, kSCREEN_WIDTH, height);
}
网友评论