代码拾遗录--轻松获取Cell里的button的indexPath

代码拾遗录--轻松获取Cell里的button的indexPath

 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier from:(UITableView*)table
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        self.tableView = table;
        [self createUI];
    }
    return self;
}

- (void)createUI
{
    self.backgroundColor = [UIColor purpleColor];
    self.textLabel.font = [UIFont systemFontOfSize:50.0f];
    
    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = (CGRect){0,0,60,40};
    button.backgroundColor = [UIColor whiteColor];
    [button addTarget:self action:@selector(clickAction:event:) forControlEvents:UIControlEventTouchUpInside];
    self.accessoryView = button;
}

- (void)clickAction:(UIButton*)sender  event:(id)event
{
    NSSet * touches = [event allTouches];
    UITouch * touch = [touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView:self.tableView];
    
    NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint:currentTouchPosition];
    if (indexPath != nil) {
        NSLog(@"%@",indexPath);
    }
}

关键代码 要将table传入cell里面 还有一句   indexPathForRowAtPoint: