IOS15使用Masonry和自动计算Cell的高度
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的高度相关推荐
- ios15使用纯代码计算cell的高度
ios15使用纯代码计算cell的高度 #import "MTableViewController.h" #import "MTableViewCell.h" ...
- iOS8+ UITableView自动计算cell高度并缓存
这篇文章我们来讲一下UITableView的cell自适应高度,以及遇到的问题的解决办法.在看文章之前希望你已经会UITableView的基本使用了. 先奉上这篇文章的demo的Github地址:UI ...
- iOS8新特性 计算 cell 的高度
http://tutuge.me/2015/08/08/autolayout-example-with-masonry2/ 1.tableview: 自动计算 tableVIew 的 cell 的高度 ...
- swif之Tableview的使用、cell动态高度、侧滑删除、设置中心、个人中心、cell多选、cell单选
1:当创建UITableViewCell的时候使用Auto Layout布局子视图,添加对应的约束( leading, top, trailing and bottom constraints) 2: ...
- 通过代码自定义cell(cell的高度不一致)
我们知道,在iOS中,自定义cell的方式有两种: 一是通过xib创建 .二是通过代码自定义cell 这里我说下通过代码自定义的cell. 当我们的应用显示的cell比较复杂,显示的行高都不一样,比如 ...
- (0072)iOS开发之UITableViewCell高度自适应探索--cell预估高度
转载自:http://www.jianshu.com/p/f3609cd9392e 有了预估高度这个先决条件,一切都好说了.我们直接从代码入手. 接下来我们实现一个简单的信息展示功能,如: Demo最 ...
- 【iOS7开发笔记】tableview之通过代码自定义cell(cell的高度不一致)
1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 Ø添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控 ...
- 1,通过代码自定义cell(cell的高度不一致)的基本步骤
1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseldentifier:方法(构造方法,在初始化对象的时候调用,以便在这个方法中添加需要显示的子控件) ...
- Text Kit框架——动态字体及cell动态高度
由于Apple近几年在iOS系统的不断改进过程中添加了许多新的特性和功能,这使得iOS系统对文本的渲染能力有了大大的提升.在iOS7中我们就已经能感觉到在文本渲染方面有了很大改进和提升.现在iOS8发 ...
最新文章
- 揭秘高盛区块链报告:区块链技术在五大领域从理论走向实践 | 附报告下载
- 关于MySQL连接Navicat Premium 12失败的解决方法
- 利用ssh+rsync+inotify实现数据的异地实时同步
- MySQL带EXISTS关键字的子查询
- 南京大学计算机学院宋教授,宋曰钦教授
- QT VS环境安装后出现生成的程序can not start, can not find Qt pligins “windos“ 问题 2021-06-13
- linux texmaker编译,在Ubuntu下安装和编译LaTex
- 正则表达式和Java编程语言1zz
- 资深面试官解答:大厂月薪过20K的测试工程师,都需要满足哪些要求?
- 被替换的项目不是替换值长度的倍数_机器学习中处理缺失值的9种方法
- SSH框架下载地址及说明介绍地址
- 如何找到网站服务器的源代码_如何花3-5分钟找到网站Bug?
- 算法导论第三版第六章 答案
- 修复WordPress中的Cookie阻止错误
- php 解压 中文文件夹,如何把文件夹压缩为rar
- 打造自己的MyLifeOrganized 2(MLO2)云同步
- 计算机游戏快速退出的快捷键,电脑玩游戏怎么快速切回桌面
- C++长整型(long long)64位整型耗时问题
- android程序ping服务器
- 计算机测控技术就业方向,测控技术与仪器专业是干什么的
热门文章
- 查询mysql视图_MySQL数据库简介及常用命令
- linux删除本机mysql_删除Linux本机自带的Apache/PHP/MySQL
- 用户域名注册后 需要在租服务器吗,申请域名并缴费后,是不是还需要一个服务器,那怎么建服务器呢...
- 用python编21点游戏_【Python3】21点游戏
- 面试官:“同学,你做过真实落地项目吗?”​
- 使用VHDL编程的直接扩频发生器
- 初三学生多会筹备计算机中考考试,2020年的初中生注意,中考将会发生这几大变化,最好提前准备...
- php模拟环境搭建,PHP环境搭建最新方法
- 反编译工具的使用和字节码文件的查看(Binary Viewer)
- lacp静态和动态区别_lacp静态与动态区别