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

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

  1. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  2. {
  3. return ;
  4. }

来设置;

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

  1. // 动态行高
  2. self.tableView.rowHeight = UITableViewAutomaticDimension;
  3. // 预估行高
  4. self.tableView.estimatedRowHeight = ;

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

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

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

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

例如:

  1. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  2. {
  3. if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
  4. self.selectionStyle = UITableViewCellSelectionStyleNone;
  5. self.separatorInset = UIEdgeInsetsZero;
  6.  
  7. [self.contentView addSubview:self.headerImageView];
  8. [self.contentView addSubview:self.titleLabel];
  9. [self.contentView addSubview:self.detailLabel];
  10.  
  11. __weak typeof(self)weakself = self;
  12. [self.headerImageView mas_makeConstraints:^(MASConstraintMaker *make) {
  13. make.top.equalTo(weakself.mas_top).offset( / WIDTH_6S_SCALE);
  14. make.width.height.mas_offset( / WIDTH_6S_SCALE);
  15. make.left.equalTo(weakself.mas_left).offset( / WIDTH_6S_SCALE);
  16. }];
  17. [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  18. make.top.equalTo(weakself.headerImageView.mas_top);
  19. make.left.equalTo(weakself.headerImageView.mas_right).offset( / WIDTH_6S_SCALE);
  20. make.height.mas_offset( / HEIGHT_6S_SCALE);
  21. }];
  22. [self.detailLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  23. make.left.equalTo(weakself.titleLabel.mas_left);
  24. make.right.equalTo(weakself).offset(- / WIDTH_5S_SCALE);
  25. make.top.equalTo(weakself.titleLabel.mas_bottom).offset( / WIDTH_6S_SCALE);
  26. }];
  27.  
  28. [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
  29. make.top.equalTo(weakself.headerImageView.mas_top).offset(- / WIDTH_5S_SCALE);
  30. make.left.right.equalTo(weakself);
  31. make.bottom.equalTo(weakself.detailLabel.mas_bottom).offset( / WIDTH_5S_SCALE);
  32. }];
  33. }
  34. return self;
  35. }
  1.  

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. Sql Server 2016 创建内存数据库

    官方教程:https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/survey-of-initial-area ...

  2. jquery中的attr与prop

    http://www.cnblogs.com/Showshare/p/different-between-attr-and-prop.html

  3. 给第三方apk进行系统签名的几种方式【转】

    本文转载自:http://blog.csdn.net/luzhenrong45/article/details/47733053 版权声明:本文为博主原创文章,未经博主允许不得转载. -------- ...

  4. CSU1808 地铁 —— dijkstra变形

    题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1808 题解:由于中转线路需要花费一定的时间,所以一般的以顶点为研究对象的dijkst ...

  5. 配置maven环境变量并安装jar包到本地仓库

    1.下载maven安装包,解压,解压目录如下: 2.配置M2_HOME变量为上一步的路径: 3.配置PATH变量,添加%M2_HOME%\bin;  查看是否配置成功 mvn -v : 4.安装jar ...

  6. BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告

    题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?pid=1002&cid=530 (格式有一点点问题,直接粘 ...

  7. 【Selenium】跳转问题

    /** * rewrite the get method, adding user defined log</BR> * 地址跳转方法,使用WebDriver原生get方法,加入失败重试的 ...

  8. 003 - 修改Pycharm的项目文件树样式

    相信习惯了Eclipse或者Windows的小伙伴对于Pycharm的目录树一定觉得特别别扭 因为它总是在文件前加一个三角形标注, 这样的标注在视觉上十分误导层级关系 修改的方式为   File -& ...

  9. Linux GCC常用命令学习

    1简介 GCC 的意思也只是 GNU C Compiler 而已.经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言:它现在还支持 Ada 语言.C++ 语言.Java 语言.Objective ...

  10. Opencv— — mix channels

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...