博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
几种设置UITableView的cell动态高度的方法
阅读量:6141 次
发布时间:2019-06-21

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

1.UITableView加载的顺序是先得到表的行的高度,也就是先调用heightForRowAtIndexPath方法,然后再调用cellForRowAtIndexPath,所以我们有两个办法实现自定义cell高度(解决不同section的不同行高问题)。

一:改变它的加载顺序,或者说白了就是计算好cell高度后,再次让它加载heightForRowAtIndexPath方法;

二:直接在heightForRowAtIndexPath计算,做判断,直接返回对应的高度。

 

以下是第一种方法的实例:

UITableView设置单元格的高度的方法

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

下面介绍如何扩大当前单元格并且缩小其他单元格:

  1. // Somewhere in your header:
  2. NSIndexPath *selectedCellIndexPath;
  3. // And in the implementation file:
  4. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  5.         selectedCellIndexPath = indexPath;
  6.         // Forces the table view to call heightForRowAtIndexPath
  7.     [tableView reloadRowsAtIndexPaths:[NSArrayarrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
  8. }
  9. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  10.         // Note: Some operations like calling [tableView cellForRowAtIndexPath:indexPath]
  11.         // will call heightForRow and thus create a stack overflow
  12.         if(selectedCellIndexPath != nil && [selectedCellIndexPath compare:indexPath] == NSOrderedSame){
  13.                 return 128;
  14.         }else{
  15.              return 64;
  16.        }
  17. }

reloadRowsAtIndexPaths方法将重新调用heightForRowAtIndexPath使单元格改变高度。 

reloadRowsAtIndexPaths是在3.0.存储NSIndexPath的原因是因为不可能在堆栈不溢出的情况下在 heightForRowAtIndexPath调用类方法例如cellForRowAtIndexPath 。

转载于:https://www.cnblogs.com/geek6/p/3937805.html

你可能感兴趣的文章
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>