喜欢交朋友的加:微信号 dwjluck2013

1、一般来说 在iOS 中若UITableViewCell 固定行高, 会通过

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return ;
}

来设置;

2、如果需要由系统自动估算行高, 可以通过设置以下代码实现:

// 动态行高
self.tableView.rowHeight = UITableViewAutomaticDimension;
// 预估行高
self.tableView.estimatedRowHeight = ;

3、如果一个tableview即想用固定行高又想用预估行高(自动计算行高) 这两者的矛盾怎样解决呢?以下代码 关键在于 这句话:

return UITableViewAutomaticDimension;
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == || indexPath.section == ) {
return ;
}
// 注意:解决固定行高和系统自动计算行高 其他组走系统自动计算行高
return UITableViewAutomaticDimension;
}

4.在cell中约束好之后 要写  self.contentView 的高度实际contentview的高度就是cell的高度 重点注意在cell中  子控件约束不能用

contentView 约束 因为在设置self.contentView约束之前  self.contentView的高度都是0;

例如:

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.separatorInset = UIEdgeInsetsZero; [self.contentView addSubview:self.headerImageView];
[self.contentView addSubview:self.titleLabel];
[self.contentView addSubview:self.detailLabel]; __weak typeof(self)weakself = self;
[self.headerImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(weakself.mas_top).offset( / WIDTH_6S_SCALE);
make.width.height.mas_offset( / WIDTH_6S_SCALE);
make.left.equalTo(weakself.mas_left).offset( / WIDTH_6S_SCALE);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(weakself.headerImageView.mas_top);
make.left.equalTo(weakself.headerImageView.mas_right).offset( / WIDTH_6S_SCALE);
make.height.mas_offset( / HEIGHT_6S_SCALE);
}];
[self.detailLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(weakself.titleLabel.mas_left);
make.right.equalTo(weakself).offset(- / WIDTH_5S_SCALE);
make.top.equalTo(weakself.titleLabel.mas_bottom).offset( / WIDTH_6S_SCALE);
}]; [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(weakself.headerImageView.mas_top).offset(- / WIDTH_5S_SCALE);
make.left.right.equalTo(weakself);
make.bottom.equalTo(weakself.detailLabel.mas_bottom).offset( / WIDTH_5S_SCALE);
}];
}
return self;
}
												

iOS UITableView 解决估算行高和指定行高的矛盾的更多相关文章

  1. mysql 行号 获取指定行数据

    mysql 行号的实现 Select id,(@rowNum:=@rowNum+1) as rowNo From first,(Select (@rowNum :=0) ) bOrder by fir ...

  2. sed 删除最后几行 和删除指定行 awk使用

    sed 删除最后几行 和删除指定行   转载原文链接:http://blog.51cto.com/lspgyy/1305489 sed 想删除文件中的指定行,是可以用行号指定也可以用RE来匹配的. 删 ...

  3. python实现Excel删除特定行、拷贝指定行操作

    工作中遇到的,本来用VBA写的,操作很慢,尝试用Python实现, 任务需求: 从原始的两张表中拷贝行到五张表中,如下表所示: source1和source2是一样的格式:         one t ...

  4. python3读取文件指定行的三种方案

    技术背景 考虑到深度学习领域中的数据规模一般都比较大,尤其是训练集,这个限制条件对应到实际编程中就意味着,我们很有可能无法将整个数据文件的内容全部都加载到内存中.那么就需要一些特殊的处理方式,比如:创 ...

  5. C++操作文件行(读取,删除,修改指定行)

    /******************************************************** Copyright (C), 2016-2018, FileName: main A ...

  6. IOS学习之路六(UITableView滑动删除指定行)

    滑动删除指定行代码如下: Controller.h文件 #import <UIKit/UIKit.h> @interface TableViewController : UIViewCon ...

  7. +p解决vim粘贴自动缩进。 数字gg跳到vim指定行。 vim查找到后,enter键修改

    +p解决vim粘贴自动缩进.  数字gg跳到vim指定行. vim查找到后,enter键修改

  8. iOS UITableView优化

    一.Cell 复用 在可见的页面会重复绘制页面,每次刷新显示都会去创建新的 Cell,非常耗费性能.  解决方案:创建一个静态变量 reuseID,防止重复创建(提高性能),使用系统的缓存池功能. s ...

  9. iOS:UITableView表格视图控件

    UITableView:表格视图控件,继承滚动视图控件UIScrollView,(类似于UIPickerView选择器,它主要通过设置数据源代理和行为代理实现协议来设置单元格)    对表格的操作主要 ...

随机推荐

  1. window cmd 自动补全

    1. 用命令里输入regedit注册表 WIN+R 快捷输入 regedit regedit2. 键值改为9(十进制) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Co ...

  2. Appium——解决每次启动时都安装setting和unlock app方法

    找到appium安装目录 C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android 修改代码,注释掉弹出setting ...

  3. Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析

    前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增.删.查.改) 目录 1. SQLite数据库介绍 SQLite是Android内置的 ...

  4. codeforces B. George and Round 解题报告

    题目链接:http://codeforces.com/contest/387/problem/B 题目意思:给出1-n个问题,以及要满足是good rounde条件下这n个问题分别需要达到的compl ...

  5. 迁移学习算法之TrAdaBoost ——本质上是在用不同分布的训练数据,训练出一个分类器

    迁移学习算法之TrAdaBoost from: https://blog.csdn.net/Augster/article/details/53039489 TradaBoost算法由来已久,具体算法 ...

  6. log4j 配置文件详解

    [1]从零开始 a). 新建Java Project>>新建package>>新建java类: b). import jar包(一个就够),这里我用的是log4j-1.2.14 ...

  7. MongoDB 项目集成 mongo-driver 3.4.2

    第一次写技术!大白话讲讲.拿着用就可以了 本人是,NET的技术人员,会点JAVA所以很多不专业,见谅哈 刚刚开始使用mongo 整整搞了两天我才搞个半桶水,还是将就着用吧 随便把mongo在win的搭 ...

  8. cowboy中分布式节点通信

    项目开发中,web前端节点需要与远端的聊天服节点通信.聊天服使用了otp,但我对otp下的分布式通信不太清楚,造成了一些问题. 1)首先是cowboy节点的命名.具体参数是配置在工程目录rel下的vm ...

  9. Python: PS 图像调整--饱和度调整

    本文用 Python 实现 PS 图像调整中的饱和度调整算法,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/detail ...

  10. P2759 奇怪的函数

    题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例# ...