在程序运行中调整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];

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值