首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSIndexPath for UIButton in UITableViewCell

NSIndexPath for UIButton in UITableViewCell
EN

Stack Overflow用户
提问于 2014-03-14 01:15:58
回答 2查看 186关注 0票数 0

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

代码语言:javascript
复制
 cell.onButtonTapped = ^{
        [self buttonSelectedAtIndexPath:indexPath];
    }

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-14 01:37:38

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

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

代码语言:javascript
复制
CGPoint subViewCenter = [self.tableView convertPoint:subview.center fromView:subView.superView]; // because a view's center is on its superview's coordinates

要获得indexPath:

代码语言:javascript
复制
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:subViewCenter];
票数 1
EN

Stack Overflow用户

发布于 2014-03-14 01:34:47

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

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

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22394289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档