表格单元格内的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。 就好像我在敲一个标签,没有任何反应。 所以我最终得到这样的东西:
编辑:只是为了澄清事情。 问题不在于button点击方法。 这就是说,我不能物理地点击button,就像有一些东西在阻碍它,或者被一些控制禁用。
你需要做以下的事情
- 在yourcellxib中设置button的标签。 orderitemcell在你的情况
-
得到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;
//太