`
yangping_Account
  • 浏览: 194261 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

在程序运行中调整UITableViewCell高度

 
阅读更多

最近要实现下面的效果,就是在UITableView中有很多行数据,当用户选择某一行之后,将该行高度调整为原来2倍,其它行高度不变,改行后面的行往后顺移.

这个问题困扰了很久,想过调整UITableViewCell的frame,或则调整height,或则调整origin.y,在之间插入新视图,但发现如果选择最后几行中某一行,倒数一两行不能被选中,后来又给UITableView添加手势,但由于UITableView的重用机制,滚动后会重新调整尺寸,后来的效果不尽理想.

好事多磨,想来想去,终于找到了解决方案,就是增加一个数组,

 

BOOL bCheck[20]; (也可以是NSArray,里面添加NSNumber成员,记录cell高度,这里简单用bool数组)


记录每个cell的高度,

 

然后在:

 

 

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

 

    if (bCheck[indexPath.row]) {

 

        return 100;

    }else{

 

        return 50;

    }

}

 

最后处理选择操作:

 

 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

 

    bCheck[indexPath.row] = YES;

 

    [tableView reloadData];

 

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics