2012-04-15 67 views
0

我子类UITableViewCell和里面的类我已经添加了UITapGestureRecognizer(其触发称为animateCell的方法)到contentViewUITapGestureRecognizer抵消didSelectRowAtIndexPath方法中的UITableViewController

我在做什么:当用户点击一个单元时,animateCell被调用(可以工作),但我也想要didSelectRowAtIndexPath被调用,这样我就可以从表的源数组中添加选定的对象另一个阵列。

我注意到的是,UITapGestureRecognizer取消了didSelectRowAtIndexPath。我有两种方法可以同时使用吗?

+1

为什么你需要使用一个子类?为什么你不能从'didSelectRowAtIndexPath'动画单元? – edc1591 2012-04-15 17:58:06

+0

这很容易,因为我有很多额外的表视图控制器,我推入堆栈(导航控制器)的堆栈中,每个人都需要能够执行相同的动画。我还是比较新的,所以如果你有建议,请说。 – sooper 2012-04-15 18:00:07

回答

1

这是一种骇人听闻的,但你可以尝试在你的UITableViewCell子类中创建一个属性,该属性持有指向你的UITableViewController的指针。然后从你的手势识别器,你可以做这样的事情:

NSIndexPath *indexPath = [self.tableViewController.tableView indexPathForCell:self]; 
[self.tableViewController tableView:self.tableViewController.tableView didSelectRowAtIndexPath:indexPath]; 
+0

这是一个整洁的想法。我试过了,但是我在第二行发现错误'-didSelectRowAtIndexPath:not found' – sooper 2012-04-15 18:20:35

+0

oops,已修复。现在试试 – edc1591 2012-04-15 18:37:16

+0

这个解决方案非常棒。只是一个问题:性能明智,哪个更好?要实现上述解决方案,还是要在'didSelectRowAtIndexPath'中执行动画(即使它有更多的工作)? – sooper 2012-04-15 18:43:56

相关问题