【问题标题】:NSIndexPath for UIButton in UITableViewCellUITableViewCell 中 UIButton 的 NSIndexPath
【发布时间】:2014-03-14 01:15:58
【问题描述】:

我正在尝试实现this link 中问题的答案中概述的块方法,但我不明白如何设置块。假设...

 cell.onButtonTapped = ^{
        [self buttonSelectedAtIndexPath:indexPath];
    }

是伪代码,假设我在该单元格中有一个 UITableViewCell(不是自定义单元格)和一个 UIButton,我将如何实际实现它。是否可以在不创建我自己的UITableViewCell 子类的情况下做到这一点?

【问题讨论】:

    标签: ios objective-c uitableview


    【解决方案1】:

    如果你打算这样做,你真的必须创建一个 UITableViewCell 子类,它是其按钮的目标,具有块的属性并在点击按钮时调用块。

    实际上有一种简单的方法可以知道单元格的子视图(例如此处的按钮)来自哪个 indexPath。首先,您需要 tableView 坐标上的一个点,该点包含在子视图中。假设您将选择子视图的中心。将其转换为 tableView 的坐标:

    CGPoint subViewCenter = [self.tableView convertPoint:subview.center fromView:subView.superView]; // because a view's center is on its superview's coordinates
    

    获取索引路径:

    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:subViewCenter];
    

    【讨论】:

      【解决方案2】:

      不,根据您所指的答案,您需要一个自定义 UITableViewCell。本质上,您是在单元格上调用一个方法并传递该单元格的当前 indexPath。

      无论您使用块方法还是委托方法,您都需要自定义 UITableViewCell,因为您需要在某个地方存储 indexPath 和设置它的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多