美文网首页工具相关
iOS开发 -布局工具SDAutoLayout使用

iOS开发 -布局工具SDAutoLayout使用

作者: 我不相信me | 来源:发表于2017-02-09 14:46 被阅读1081次

    介绍  :一行代码搞定自动布局!支持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);

    }

    相关文章

      网友评论

      • b2efe7751b24:怎么获取frame,都是0啊
      • 狼人王:楼主在吗,可以把你写的那个标签选择器demo给我一下吗,用sd写的

      本文标题:iOS开发 -布局工具SDAutoLayout使用

      本文链接:https://www.haomeiwen.com/subject/xwcbittx.html