2011-06-11 40 views
0

当我在TableViewCell内使用UIImageViewtapGesture。 如果我直接在图像上点击它触发:imageView tapGesture vs button touchUpInside,with didSelectRowAtIndexPath

didSelectRowAtIndexPath 

my_image_tap_deletage 

如果我使用的UIButtonUIControlEventTouchUpInside内部的TableViewCell 如果我直接在按钮,它触发点击:

my_button_tap_delegate 

我知道我可以使用UIButton与图像,而不是UIImageView,但仍然。

问题:

1.为什么触发事件有这样的不同?

2.如何让图像像按钮一样动作,只触发控件事件,而不需要didSelectRowAtIndexPath

更新: 我不知道它是否重要,但我只想注意到 我从xib +子类创建UITableViewCell。

更新2: 嗯,一半的责任在我身上。 我忘了提一件事。 我将手势设置为gesture.numberOfTapsRequiered = 2;

如果是1,didSelectRowAtIndexPath方法不叫,它的O.K

如果是2,didSelectRowAtIndexPath方法被调用。我试着用gesture.cancelsTouchesInView = YES/NO(都是..)和didSelec仍然叫。

也许在2次点击的情况下,SDK会决定didSelect会被调用吗?

希望我在这里很清楚。 在此先感谢。

+0

您是否将手势属性cancelsTouchesInView设置为NO?如果是这样,确保它被设置为YES。 – Till 2011-06-12 06:25:26

回答

1

至于我已经注意到,如果你已经完成了将图像视图添加到表视图单元格的所有事情,并且如果你点击UIImageView,它应该只调用imageView的动作,而不是表视图的didSelectRowAtIndexPath:委托方法。