当多个cell可滑动,且每个cell中有一个button,点击这个button的时候需要知道当前点击的是哪一个cell上的按钮.
解决方式:
- 自定义一个cell,继承与
UITableViewCell
,并为这个cell创建一个协议如下,协议方法中将自己当作参数使用,如下:
@property (nonatomic, weak) id< CustomTableViewCellDelegate >delegate;
@protocol CustomTableViewCellDelegate
- (void)customTableViewCell:(CustomTableViewCell *)cell;
@end
- 然后在你自定义的cell 类中创建的 button 控件的方法中实现
- (void)pressButton:(UIButton *)sender {
if ([self.delegate respondsToSelector:@selector(customTableViewCell:)]) {
[self.delegate customTableViewCell:self];
}
}
- 最后在你需要实现协议的控制器中,调用便可以了, (别忘记控制器要遵守协议,谁遵守协议谁就来实现协议中的方法)
- (void)customTableViewCell:(CustomTableViewCell *)cell{
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
}