2014-07-25 121 views
0

我有一個UILabel一個UICollectionViewCell。當用戶觸摸它時,我會更改標籤顏色。問題在於當你觸摸單元格時,直到鬆開手指纔會識別出文字改變或觸摸。倒是被延遲

我認爲有一些延遲設置,您可以設置使用戶可以滾動而不選擇發生的UICollectionView,但我無法找到該屬性?

+0

有沒有機會在視圖控制器中使用其他手勢識別器? – klcjr89

+0

不,我不知道。我可以設置一個屬性,不會延遲觸摸。 – jdog

+1

你看過'UICollectionView'上的'delaysContentTouches'屬性嗎? – klcjr89

回答

0

標準UIKit的行爲是對觸摸觸發了內活性(即觸摸的結束時,手指必須是靜止的控制內部)。

在滾動視圖(如集合視圖)中,子視圖在手指按下時將獲得touchesBegan:,但如果手指足夠移動而看起來像滾動而不是輕敲,則會獲得後續取消。 UIControl s和相關的UIGestureRecognizer只是處理該信息。因此,他們遵循內在的規則,如果行動看起來像一個卷軸,就不會開火。

我懷疑有一種方法可以直接改變集合視圖的行爲,但你可以有單獨的細胞趕上觸摸開始或在他們控制的觸摸張貼了下來。鑑於UILabel不是UIControl的子類,您可能需要對其進行子類化並執行前者。