我在单元格中有一个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并使用touchesBegan
,touchesMoved
和touchesEnded
。并且编写功能来检查触摸所花费的时间......在这里我认为可以调用两个不同的功能。
对于两者:这是否会干扰CollectionView的滚动行为?滚动是触摸并按住并拖动 ...?
有什么想法吗?
干杯 - 耶利克
答案 0 :(得分:0)
这是UIGestureRecognizer的一个很好的应用,特别是UITapGestureRecognizer
和UILongPressGestureRecognizer
。两者都可以附加到每个图像或每个单元格。附加到图像时,请务必将其设置为userInteractionEnabled
property = YES。
还要记住,集合视图单元格是可以重复使用的,所以你应该在添加任何视图之前检查视图的gestureRecognizers数组的数量。
区分触摸开始的触摸和触摸是长按的开始不是软件的工作 - 这是算命。唯一的选择 - 无论是软件 - 是识别发布时的点击(state == UIGestureRecognizerStateRecognized
时)。
两个竞争手势应该使用requireGestureRecognizerToFail:
进行互动。请参阅reference here。