UIImage上的不同触摸类型将调用不同的功能

时间:2013-06-12 19:24:34

标签: objective-c cocoa-touch events uiimage uicollectionview

我在单元格中有一个CollectionView图像。对于细胞或细胞中的图像,我想实现调用不同功能的2种触摸行为。

1)UIImage上的正常(短)点击将调用View with Details 2)触摸并按住UIImage将显示弹出窗口

目前我还不清楚如何实现这一目标。

一方面,我可以尝试使用UIButton,这意味着我有一个带图像的UIButton。然后我可以使用选项1)Touch up inside和选项2)Touch down。 但在我的脑海里,它说Touch down在这两种情况下完成了,ios怎么知道这是一个短暂的点击而不是触摸和保持......我是否必须帮助系统区分它? 除此之外,我觉得所有的图像(可以很多)作为UIButton听起来很奇怪。是否可以为UIButton分配2个触摸?

另一方面,我可以留在UIImage并使用touchesBegantouchesMovedtouchesEnded。并且编写功能来检查触摸所花费的时间......在这里我认为可以调用两个不同的功能。

对于两者:这是否会干扰CollectionView的滚动行为?滚动是触摸并按住并拖动 ...?

Touch events reference

有什么想法吗?

干杯 - 耶利克

1 个答案:

答案 0 :(得分:0)

这是UIGestureRecognizer的一个很好的应用,特别是UITapGestureRecognizerUILongPressGestureRecognizer。两者都可以附加到每个图像或每个单元格。附加到图像时,请务必将其设置为userInteractionEnabled property = YES。

还要记住,集合视图单元格是可以重复使用的,所以你应该在添加任何视图之前检查视图的gestureRecognizers数组的数量。

区分触摸开始的触摸和触摸是长按的开始不是软件的工作 - 这是算命。唯一的选择 - 无论是软件 - 是识别发布时的点击(state == UIGestureRecognizerStateRecognized时)。

两个竞争手势应该使用requireGestureRecognizerToFail:进行互动。请参阅reference here