我正在尝试实现this link中问题的答案中概述的块方法,但是我不明白如何设置这个块。假设..。
cell.onButtonTapped = ^{
[self buttonSelectedAtIndexPath:indexPath];
}是伪代码,假设我在该单元格中有一个UITableViewCell (不是自定义单元格)和一个UIButton,我将如何实现该代码。在不创建自己的UITableViewCell子类的情况下可以这样做吗?
发布于 2014-03-14 01:37:38
如果要这样做,就必须创建一个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要获得indexPath:
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:subViewCenter];发布于 2014-03-14 01:34:47
不,根据您所指的答案,您需要一个自定义UITableViewCell。实际上,您正在调用单元上的一个方法,并传递该单元格的当前indexPath。
无论您使用块方法还是委托方法,您都需要一个自定义UITableViewCell,因为您需要在某个地方存储indexPath,并需要一个方法来设置它。
https://stackoverflow.com/questions/22394289
复制相似问题