UITableViewCell 动态高度的调整
2012-11-07 21:05
375 查看
需求: 可变的表格高度。动态的加载的数据,同时支持reloadData.
第一个想法:- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 调用
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
这样的话就会造成cellForRowAtIndexPath用两遍,性能先不说会不会出现什么BUG。
网上找资料: 来自高勇 http://gaoyong.diandian.com/post/2012-08-14/40036292960
操作方法:
需要在因UITableView 的datasource变化后,导致某一个确定的cell需要被
reload (reloadRowsAtIndexPaths). reload 后需要在该cell中添加一些竖型排列子视图 (addsubview)并且让该subview在可视区域里面。
在
reload部分。cellForRowAtIndexPath部分。(reload的时候会自动调用cellForRowAtIndexPath)增加
了部分UIScrollView的scroll相关的代码。(UITableView继承自UIScrollView)。发现
cellForRowAtIndexPath被循环调用。
但是怀疑作者 在调用UITableViewCell *cell=[self tableView: tableView cellForRowAtIndexPath: indexPath]; 时可能错误的写成 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];造成了递归。
第二个方法:用自适应的label 让cell的高度跟着适应。
CGSize constraint = 预先设置的宽高;
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
然后在- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 返回这个高度。当然局限性也很强就是必须是cell适应label的高度,要是有些图片了之类的就废了~~
第三种方法:我擦他了~ 还没想出来~
第一个想法:- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 调用
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
这样的话就会造成cellForRowAtIndexPath用两遍,性能先不说会不会出现什么BUG。
网上找资料: 来自高勇 http://gaoyong.diandian.com/post/2012-08-14/40036292960
操作方法:
需要在因UITableView 的datasource变化后,导致某一个确定的cell需要被
reload (reloadRowsAtIndexPaths). reload 后需要在该cell中添加一些竖型排列子视图 (addsubview)并且让该subview在可视区域里面。
在
reload部分。cellForRowAtIndexPath部分。(reload的时候会自动调用cellForRowAtIndexPath)增加
了部分UIScrollView的scroll相关的代码。(UITableView继承自UIScrollView)。发现
cellForRowAtIndexPath被循环调用。
但是怀疑作者 在调用UITableViewCell *cell=[self tableView: tableView cellForRowAtIndexPath: indexPath]; 时可能错误的写成 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];造成了递归。
第二个方法:用自适应的label 让cell的高度跟着适应。
CGSize constraint = 预先设置的宽高;
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
然后在- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 返回这个高度。当然局限性也很强就是必须是cell适应label的高度,要是有些图片了之类的就废了~~
第三种方法:我擦他了~ 还没想出来~
相关文章推荐
- 动态调整UITableViewCell高度的实现方法
- iOS TableViewCell 动态调整高度
- cell根据文本高度动态调整高度适应
- UITableView使用AutoLayout动态计算cell高度
- IOS 6.0+ Autolayout — UITableViewCell 高度调整
- UITableViewcell autolayout下动态高度
- 动态调整label和cell的高度
- 动态调整cell的高度
- IOS学习之UITableViewCell动态计算高度(IOS8)
- iOS中使用AutoLayout动态调整Cell高度
- UITableView 如何不动态计算返回的cell 的高度
- Swift之动态适配UITableView的cell高度
- UITableViewCell分割线(样式,宽度·高度调整,颜色等的设置)
- 提升含有动态高度UITableViewCell的UITableView的运行效率
- UITableView动态改变Cell高度
- UITableViewcell autolayout下动态高度
- UITableView动态改变Cell高度
- IOS 6.0+ Autolayout — UITableViewCell 高度调整
- UITableView动态改变Cell高度
- ios uitableviewcell动态计算高度