喜欢交朋友的加:微信号 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. return;测试

    一 没有return;,则会顺序执行到最后 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  2. sdut oj 1163 C语言实验——排列 (当初不会递归生成排列,这个题目现在才补上 刘汝佳给出了写法 *【模板】 当然有生成全排列的函数存在 )

    C语言实验——排列 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 有4个互不相同的数字,请按序输出由其中三个不重复数字组成的排列 ...

  3. linux /usr /var /etc 目录

    /usr 目录是应用程序主要存放的目录.该目录中的二进制文件对系统启动和维护并非必要,因此整个 /usr 目录结构常会被存放到另一个分离的文件系统中.因为其(通常)具有很大的容量,/usr 有其自己的 ...

  4. 自定义标签(客户化jsp标签)

    客户化jsp标签技术是在jsp1.1版本中才出现的,他支持用户在jsp文件中自定义标签,这样可以使jsp代码更加简单,这些可重用的标签能够处理复杂的逻辑运算和事物或定义jsp网页的输出内容和格式. 创 ...

  5. 如何使用Psyco为你的Python程序提速

    psyco加速Python执行速度的方法:要求: 版本对照:File name      Python versions      Well-tested withpsyco-x.y-win32-py ...

  6. MT8735A平台配置MT6630

    1. codegen配置 2. ProjectConfig CUSTOM_HAL_ANT = mt6630_ant_m1 CUSTOM_HAL_COMBO = mt6630 MTK_BT_CHIP = ...

  7. Ubuntu+win7 双系统修改开机启动项顺序

    Ubuntu和windows双系统安装完后默认Ubuntu系统是第一启动项,等待时间是10秒 如果你想改成windows为第一启动项 先进去Ubuntu系统 打开终端 (Ctrl+Alt+T) 修改启 ...

  8. Gulp-webpack简单应用

    1.配置环境:  在  webstorm  的控制台中  (1) cnpm install --save-dev gulp    (2)  cnpm install --save-dev gulp-w ...

  9. CodeForces - 767C Garland 树的遍历

    C. Garland time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...

  10. tensorflow weight_variable going

    # coding: utf-8 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data d ...