博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算tableview的高度
阅读量:4984 次
发布时间:2019-06-12

本文共 1219 字,大约阅读时间需要 4 分钟。

1、自定义一个Cell,拖一个label。设置cell的上下边与Cell.contentView间距0,其他约束随意。这样,lable对Cell的高度有了一个强约束。设置label的行数为0,高度不设。

2、感谢网友提醒,这里如果是iOS7,还是需要设置Cell的高度,不过可以非常简化,具体做法如下:

a、在ViewController中创建一个Cell的属性或成员变量,专门用于计算Cell高度。(做这一步是为了性能优化)比如self.tempCell

b、改写计算高度的回调

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

    id entity = self.dataSourceArray[indexPath.row];

    if (self.tempCell == nil) {

        self.tempCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    }

    self.tempCell.bounds = CGRectMake(0,

                                      0,

                                      CGRectGetWidth(self.tableView.bounds),

                                      CGRectGetHeight(self.tempCell.bounds)

                                      );

    [self.tempCell resetCellWithEntity:entity];

         

    CGFloat height = [self.tempCell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

    return height > 44 ? height : 44;

}

self.tempCell.bounds = xxxxxx

写这行是因为tempCell创建出来后,默认宽度不一定符合实际情况。

c、在tempCell的resetCellWithEntity:方法中,加入类似这样的代码:

?

1

self.testLable.preferredMaxLayoutWidth = self.frame.size.width;

这是因为UILable根据preferredMaxLayoutWidth的值计算高度。默认不设置,表示由系统自动计算。但自动计算仅在iOS8以后有效。iOS7的话,还是需要手动设置的。

 

3、设置一个数据源,一个NSString的数组,放入长短不同的String进行测试,可以发现显示正常。

转载于:https://www.cnblogs.com/xiaolingling1126/p/5230830.html

你可能感兴趣的文章
SVG的简单介绍
查看>>
快速排序算法总结
查看>>
Sublime Text编辑远程Linux服务器上的文件
查看>>
服务器文件同步
查看>>
HDU-4283 You Are the One 区间DP
查看>>
RPG MAKER MV 打包APK教程(一键打包,无需编写任何代码)
查看>>
Asp.Net Web API 2第四课——HttpClient消息处理器
查看>>
3. 无重复字符的最长子串
查看>>
week3xml
查看>>
MFC 多线程
查看>>
Codeforces Round #402 (Div. 2) 阵亡记
查看>>
Ceph源码解析:Scrub故障检测
查看>>
LUOGU P1414 又是毕业季II
查看>>
BZOJ 4484: [Jsoi2015]最小表示(拓扑排序+bitset)
查看>>
FastDFS 自动部署和配置脚本
查看>>
有道面试
查看>>
跟牛牛老师学习python自动化的第六天
查看>>
bzoj 1067: [SCOI2007]降雨量
查看>>
利用Flume将本地文件数据中收集到HDFS
查看>>
html5的优缺点
查看>>