cell中事件代理到tableView进行操作(如删除)的实现

项目中有个需求,cell的删除按钮代理到tableView里实现并进行删除动画。
原来我的做法是,给cell加个属性cellIndex,然后在cell赋值的时候,将indexPath.row赋给cellIndex。
后来发现有个问题,就是我连续进行两次删除操作的时候,cell的cellIndex就会发生混乱。
所以改用以下方法,在cell中取到indexPath,代理出去使用,bug得到解决

//IOS7以后,cell的superView为UITableViewWrapperView UITableView *tableView = (UITableView *)self.superview.superview; NSIndexPath *indexPath = [tableView indexPathForCell:self];

//然后代理到tableView,执行: [self.list removeObjectAtIndex:index]; [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];

下面拟将获取indexPath的方法封装在UITableViewCell中,方便使用:
@interface UITableViewCell (UnNuLL) - (NSIndexPath *)getIndexPath; @end

@implementation UITableViewCell (UnNuLL)- (NSIndexPath *)getIndexPath { //IOS7 OR LATER AVALIABLE UITableView *tableView = (UITableView *)self.superview.superview; return [tableView indexPathForCell:self]; }@end

【cell中事件代理到tableView进行操作(如删除)的实现】已经弃用,欢迎移步我的小专栏:
https://xiaozhuanlan.com/dahuihuiiOS

    推荐阅读