首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UITableView Cell - 从按钮获取IndexPath.row?

UITableView是iOS开发中常用的列表视图控件,用于展示大量数据。UITableViewCell是UITableView中的单元格,用于展示每一行的数据。

要从按钮获取UITableViewCell的IndexPath.row,可以通过以下步骤实现:

  1. 在UITableView的委托方法cellForRowAt中,为每个UITableViewCell的按钮添加一个点击事件的监听器。
  2. 在按钮的点击事件方法中,获取按钮所在的UITableViewCell,可以使用按钮的superview属性来获取其父视图,即UITableViewCell。
  3. 通过UITableView的方法indexPath(for:),传入UITableViewCell获取其对应的IndexPath。
  4. 最后,通过IndexPath的row属性获取所需的行号。

以下是一个示例代码:

代码语言:swift
复制
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CustomTableViewCell
    cell.button.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside)
    return cell
}

@objc func buttonTapped(_ sender: UIButton) {
    guard let cell = sender.superview as? UITableViewCell else {
        return
    }
    
    guard let tableView = cell.superview as? UITableView else {
        return
    }
    
    guard let indexPath = tableView.indexPath(for: cell) else {
        return
    }
    
    let row = indexPath.row
    // 使用获取到的row进行后续操作
}

在这个示例中,我们假设自定义的UITableViewCell类名为CustomTableViewCell,其中包含一个名为button的按钮。在cellForRowAt方法中,为每个按钮添加了一个点击事件的监听器,当按钮被点击时,会调用buttonTapped方法。

buttonTapped方法中,我们首先通过按钮的superview属性获取到其父视图,即UITableViewCell。然后通过UITableViewCell的superview属性获取到其所在的UITableView。最后,通过UITableView的indexPath(for:)方法获取到UITableViewCell对应的IndexPath,进而获取到所需的行号。

这样,我们就可以从按钮获取到UITableViewCell的IndexPath.row了。

推荐的腾讯云相关产品:腾讯云移动开发套件(https://cloud.tencent.com/product/mks

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券