ios - UITableViewCell indexPathForRowAtPoint 总是返回 nil

标签 ios uitableview

我正在尝试按照 Apple 的示例使用自定义披露按钮。我正在执行以下操作

- (void) customButtonTapped:(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];
    NSLog(@"index path %@", indexPath);
    if (indexPath != nil)
    {

    }


}

问题是索引路径始终为零。每次都没有失败。还有其他人遇到过这个吗?

编辑 这就是我添加按钮的方式

 cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
 UIImage *image = [UIImage imageNamed:@"Gear"];
 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
 CGRect frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
 button.frame = frame;
 [button setBackgroundImage:image forState:UIControlStateNormal];
 button.backgroundColor = [UIColor clearColor];
 [button addTarget:self action:@selector(customButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
 cell.accessoryView = button;

最佳答案

如果 self.tableViewnil,则对 indexPathForRowAtPoint: 的调用可以返回 nil

确保设置了self.tableView(例如,如果它是IBOutlet,请确保它连接到xib中的表格 View )。

关于ios - UITableViewCell indexPathForRowAtPoint 总是返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14525685/

相关文章:

ios - cocos2d-x-2.2.6/Cocos2dx 2.x加速度计倾斜不起作用

ios - UITableView点击不调用didselectrowAtIndexpath(最后一个单元格在ipad中不可点击)ios Xcode 6.2

ios - 如何只更新 UITableViewCell 的一个元素?

ios - SDWebImage UITableView 单元格图像不持久化

ios - Swift -- 录音机/变声器应用程序 : How are these functions related?

ios - 动态大小的 TableView 创建 AutoLayout 问题

iOS - 从表格 View 中查看不会显示导航栏

iphone - viewForHeaderInSection 的框架始终大小相同

iphone - 在没有App Store的情况下将App分发给大型但外部成员

ios - 从 uitableviewCell 内的按钮加载 ViewController