(转)【IOS】iOS动态改变TableView Cell高度思路

 转自:http://blog.csdn.net/weasleyqi/article/details/38185093

 

在做tableView的时候,我们有时候需要根据cell的高度动态来调整,最近在网上看到一段代码不错,跟大家Share一下。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

类中获取cell的高度:
[objc]  view plain  copy
 
  1. CGSize boundSize = CGSizeMake(216, CGFLOAT_MAX);  
  2. cell.textLabel.text = @"12345678900123456789";  
  3. cell.userInteractionEnabled = NO;  
  4. cell.textLabel.numberOfLines = 0;  
  5. CGSize requiredSize = [cell.textLabel.text sizeWithFont:[UIFont systemFontOfSize:13] constrainedToSize:boundSize lineBreakMode:UILineBreakModeWordWrap];  
  6. CGRect rect = cell.frame;  
  7. rect.size.height = requiredSize.height+5;  
  8. cell.frame = rect;  
这时候获取到了cell的高度,然后在

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

类中改变cell的高度:
[objc]  view plain  copy
 
  1. UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];  
  2.   
  3. NSLog(@"cell height %f",cell.frame.size.height);  
  4.   
  5. return cell.frame.size.height;  

这样以来cell的高度就根据cell里label的内容自动改变啦。

其主要出发点就是我有一个label,然后我要把这个label展示出来,我根据字体的大小还有行数来获取一个高度,这样cell的高度就有啦。

 

好像有问题:

1.这个问题很早之前遇到过,其实用一个sampleCell就可以轻松解决,初始化一个额外的cell来计算高度。

2.这个方法会死循环的,tableview运行时,先设定高度,再加载cell里面的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值