ios - 表格单元格内的按钮不可单击

标签 ios objective-c uitableview xcode5

我有一个自定义单元格,其中有两个连接到其方法的按钮。我将像这样的单元格添加到表中:

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:相同:并且所有单元格标签或按钮都没有超出该大小。

问题是我可以选择单元格,但是无法点击按钮。好像我在敲标签一样,什么也没发生。所以我最终得到这样的东西:

编辑:只是为了澄清事情。问题不在于按钮单击方法。这是因为我无法实际单击该按钮,例如它存在某种方式,或者已被某些控件禁用。

最佳答案

你需要做以下事情

  • 在yourcellxib中设置按钮的标签。您的情况下的orderitemcell
  • 获取按钮

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

  • 3.添加方法到您的按钮
    [btn addTarget:self action:@selector(buttonClicked:)  forControlEvents:UIControlEventTouchUpInside];
    

    现在做一个方法
    -(void)buttonClicked:(UIButton*)btn
    {
    NSLog(@"the button clicked is on cell number%d",btn.tag);
    
    }
    

    关于ios - 表格单元格内的按钮不可单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20798475/

    相关文章:

    ios - 使用以编程方式创建的 UIPopoverPresentationController 在 iPhone 上强制弹出

    ios - UIViewController 中的 applicationDidBecomeActive?

    objective-c - 具有自定义高度的 NSTableView 部分横幅列

    ios - UITableViewCell 框架高度与 tableView 不匹配 :heightForRowAtIndexPath:

    ios - UITableViewCell 外观不改变 textLabel 字体

    iphone - 自定义 UITableView

    ios - 在不提供透视图并保持高度和宽度的情况下倾斜 UIView

    ios - TouchesMoved 只移动一点点

    iOS 辅助功能提示未在文本字段上说出

    ios - 如何知道在框架中定义了一些功能?