2013-06-12 23 views
1

我有一個CollectionView與單元格中的圖像。對於單元格或單元格中的圖像,我想要實現2個觸摸行爲來調用不同的功能。UIImage上的不同觸摸類型將調用不同的功能

1)普通(短)點按的UIImage將調用觀與細節 2)觸摸並按住的UIImage會顯示一個彈出

目前的我也不清楚如何實現這個最佳。

一方面,我可以嘗試使用UIButton,這意味着我有一個圖像的UIButton。然後我可以使用選項1)Touch up inside和選項2)Touch down。 但在我的腦海裏,它說的是Touch down在這兩種情況下完成,ios如何知道這是一個短的輕拍,而不是觸摸和持有......我必須幫助系統區分它嗎? 除此之外,我聽起來很奇怪有所有的圖像(可以是很多)作爲UIButtons。是否有可能將2個觸摸分配給UIButton?

另一方面,我可以留在UIImage並使用touchesBegan,touchesMovedtouchesEnded。並編寫函數來檢查觸摸時間的花費......在這裏我認爲可以調用兩個不同的函數。

對於兩者:這是否會干擾CollectionView的滾動行爲?由於滾動是觸摸並按住並拖動 ...?

Touch events reference

任何想法?

乾杯 - jerik

回答

0

這是UIGestureRecognizer的一個很好的應用,特別是,UITapGestureRecognizerUILongPressGestureRecognizer。兩者都可以附加到每個圖像或每個單元格。當附加到圖像時,一定要將其設置爲userInteractionEnabled property = YES。

另外請記住,集合視圖單元格被重用,所以你應該在添加任何之前檢查視圖的gestureRecognizers數組的計數。

區分觸摸開始點擊和觸摸開始長按是不是軟件的工作 - 這是算命。唯一的選擇 - 無論軟件 - 是識別發佈時的水龍頭(當時state == UIGestureRecognizerStateRecognized)。

這兩個競爭手勢應該通過使用requireGestureRecognizerToFail:進行交互。請參閱reference here

相關問題