表格单元格内的button不可点击

我有一个自定义单元格,它有两个连接到它的方法的button。 我将这个单元格添加到表中,如下所示:

BSOrderedItemCell *cell = (BSOrderedItemCell *)[tableView dequeueReusableCellWithIdentifier:@"OrderItemCell"]; if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"OrderItemCell" owner:self options:nil]; cell = (BSOrderedItemCell *)[nib objectAtIndex:0]; } 

之后,我设置它的属性。

单元格大小与表格的heightForRowAtIndexPath相同:并且没有任何单元格标签或button超出该大小。

问题是我可以select单元格,但是我不能点击button。 就好像我在敲一个标签,没有任何反应。 所以我最终得到这样的东西: UITableView的屏幕截图

编辑:只是为了澄清事情。 问题不在于button点击方法。 这就是说,我不能物理地点击button,就像有一些东西在阻碍它,或者被一些控制禁用。

你需要做以下的事情

  1. 在yourcellxib中设置button的标签。 orderitemcell在你的情况
  2. 得到button

    UIButton * btn =(UIButton *)[cell viewWithTag:]; btn.tag = indexPath.row;

3.添加方法到你的button

 [btn addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

现在做一个方法

 -(void)buttonClicked:(UIButton*)btn { NSLog(@"the button clicked is on cell number%d",btn.tag); } 

你可以试试这个..

 [cell.button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

为了避免细胞select:

 Cell's xib -> Selection -> Set as None 

不要在你的cellForRowAtIndexpath中创buildIBOutlot方法添加到button

 [cell.button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

并在那里执行select器,如果你不需要行select委托,然后添加

cell.userInteractionEnabled = NO; //太