IOS15使用Masonry和自动计算Cell的高度

核心源码

 // 步骤1:tableView.rowHeight = UITableViewAutomaticDimension;// 步骤2:tableView.estimatedRowHeight = 100.0;
  CGFloat avatarButtonWidth = 32.0;self.avatarButton = [UIButton buttonWithType:UIButtonTypeCustom];self.avatarButton.layer.cornerRadius = avatarButtonWidth / 2.0;self.avatarButton.clipsToBounds = YES;[self.avatarButton setImage:[UIImage imageNamed:@"Avatar.jpg"] forState:UIControlStateNormal];[self.contentView addSubview:self.avatarButton];UIView *view = [[UIView alloc] init];self.nicknameLabel = [[UILabel alloc] init];self.nicknameLabel.font = [UIFont systemFontOfSize:13.0];self.nicknameLabel.textColor = [UIColor blackColor];self.nicknameLabel.text = @"昵称";[view addSubview:self.nicknameLabel];self.timeLabel = [[UILabel alloc] init];self.timeLabel.font = [UIFont systemFontOfSize:12.0];self.timeLabel.textColor = [UIColor grayColor];self.timeLabel.text = @"4-27";[view addSubview:self.timeLabel];[self.contentView addSubview:view];self.contentLabel = [[UILabel alloc] init];self.contentLabel.numberOfLines = 0;self.contentLabel.font = [UIFont systemFontOfSize:15.0];self.contentLabel.textColor = [UIColor blackColor];[self.contentView addSubview:self.contentLabel];[self.avatarButton mas_makeConstraints:^(MASConstraintMaker *make) {// 步骤3:设置头像的约束,最重要的思想是:给头像的top与contentView.mas_top之间建立约束make.top.equalTo(self.contentView.mas_top).offset(27.0);// 设置size与leading(left)的约束,不解释make.size.mas_equalTo(CGSizeMake(avatarButtonWidth, avatarButtonWidth));make.leading.equalTo(self.contentView.mas_leading).offset(20.0);}];// nicknameLabel与timeLabel也是使用了自动撑开的思想[self.nicknameLabel mas_makeConstraints:^(MASConstraintMaker *make) {make.leading.top.equalTo(view);}];[self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {make.leading.equalTo(self.nicknameLabel.mas_leading);make.top.equalTo(self.nicknameLabel.mas_bottom).offset(3.0);make.bottom.equalTo(view.mas_bottom);}];[view mas_makeConstraints:^(MASConstraintMaker *make) {make.leading.equalTo(self.avatarButton.mas_trailing).offset(10.0);make.trailing.lessThanOrEqualTo(self.contentView.mas_trailing).offset(-10.0);make.centerY.equalTo(self.avatarButton.mas_centerY);}];[self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) {// 步骤4:设置评论的top与头像的bottom之间的约束make.top.equalTo(self.avatarButton.mas_bottom).offset(15.0);// 步骤5:设置评论的bottom与contentView.mas_bottom之间的约束make.bottom.equalTo(self.contentView.mas_bottom).offset(-25.0);make.leading.equalTo(self.avatarButton.mas_leading);make.trailing.equalTo(self.contentView.mas_trailing).offset(-20.0);}];


https://e.coding.net/lujun1/afnetworkinggetdemo/CellAutomaticHeight.git

IOS15使用Masonry和自动计算Cell的高度相关推荐

  1. ios15使用纯代码计算cell的高度

    ios15使用纯代码计算cell的高度 #import "MTableViewController.h" #import "MTableViewCell.h" ...

  2. iOS8+ UITableView自动计算cell高度并缓存

    这篇文章我们来讲一下UITableView的cell自适应高度,以及遇到的问题的解决办法.在看文章之前希望你已经会UITableView的基本使用了. 先奉上这篇文章的demo的Github地址:UI ...

  3. iOS8新特性 计算 cell 的高度

    http://tutuge.me/2015/08/08/autolayout-example-with-masonry2/ 1.tableview: 自动计算 tableVIew 的 cell 的高度 ...

  4. swif之Tableview的使用、cell动态高度、侧滑删除、设置中心、个人中心、cell多选、cell单选

    1:当创建UITableViewCell的时候使用Auto Layout布局子视图,添加对应的约束( leading, top, trailing and bottom constraints) 2: ...

  5. 通过代码自定义cell(cell的高度不一致)

    我们知道,在iOS中,自定义cell的方式有两种: 一是通过xib创建 .二是通过代码自定义cell 这里我说下通过代码自定义的cell. 当我们的应用显示的cell比较复杂,显示的行高都不一样,比如 ...

  6. (0072)iOS开发之UITableViewCell高度自适应探索--cell预估高度

    转载自:http://www.jianshu.com/p/f3609cd9392e 有了预估高度这个先决条件,一切都好说了.我们直接从代码入手. 接下来我们实现一个简单的信息展示功能,如: Demo最 ...

  7. 【iOS7开发笔记】tableview之通过代码自定义cell(cell的高度不一致)

    1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 Ø添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控 ...

  8. 1,通过代码自定义cell(cell的高度不一致)的基本步骤

    1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseldentifier:方法(构造方法,在初始化对象的时候调用,以便在这个方法中添加需要显示的子控件) ...

  9. Text Kit框架——动态字体及cell动态高度

    由于Apple近几年在iOS系统的不断改进过程中添加了许多新的特性和功能,这使得iOS系统对文本的渲染能力有了大大的提升.在iOS7中我们就已经能感觉到在文本渲染方面有了很大改进和提升.现在iOS8发 ...

最新文章

  1. 揭秘高盛区块链报告:区块链技术在五大领域从理论走向实践 | 附报告下载
  2. 关于MySQL连接Navicat Premium 12失败的解决方法
  3. 利用ssh+rsync+inotify实现数据的异地实时同步
  4. MySQL带EXISTS关键字的子查询
  5. 南京大学计算机学院宋教授,宋曰钦教授
  6. QT VS环境安装后出现生成的程序can not start, can not find Qt pligins “windos“ 问题 2021-06-13
  7. linux texmaker编译,在Ubuntu下安装和编译LaTex
  8. 正则表达式和Java编程语言1zz
  9. 资深面试官解答:大厂月薪过20K的测试工程师,都需要满足哪些要求?
  10. 被替换的项目不是替换值长度的倍数_机器学习中处理缺失值的9种方法
  11. SSH框架下载地址及说明介绍地址
  12. 如何找到网站服务器的源代码_如何花3-5分钟找到网站Bug?
  13. 算法导论第三版第六章 答案
  14. 修复WordPress中的Cookie阻止错误
  15. php 解压 中文文件夹,如何把文件夹压缩为rar
  16. 打造自己的MyLifeOrganized 2(MLO2)云同步
  17. 计算机游戏快速退出的快捷键,电脑玩游戏怎么快速切回桌面
  18. C++长整型(long long)64位整型耗时问题
  19. android程序ping服务器
  20. 计算机测控技术就业方向,测控技术与仪器专业是干什么的

热门文章

  1. 查询mysql视图_MySQL数据库简介及常用命令
  2. linux删除本机mysql_删除Linux本机自带的Apache/PHP/MySQL
  3. 用户域名注册后 需要在租服务器吗,申请域名并缴费后,是不是还需要一个服务器,那怎么建服务器呢...
  4. 用python编21点游戏_【Python3】21点游戏
  5. 面试官:“同学,你做过真实落地项目吗?”​
  6. 使用VHDL编程的直接扩频发生器
  7. 初三学生多会筹备计算机中考考试,2020年的初中生注意,中考将会发生这几大变化,最好提前准备...
  8. php模拟环境搭建,PHP环境搭建最新方法
  9. 反编译工具的使用和字节码文件的查看(Binary Viewer)
  10. lacp静态和动态区别_lacp静态与动态区别