簡體   English   中英

在 UITextView 上點擊時未調用 UICollectionView didSelectItemAtIndexPath

[英]UICollectionView didSelectItemAtIndexPath not called when tapped on UITextView

我有一個帶有自定義單元格的UICollectionView他們有一個UITextView ,主要覆蓋整個單元格。 這在使用didSelectItemAtIndexPath時會出現問題。 觸發它的唯一方法是在UITextView之外點擊。 我希望它在您點擊的單元格中的任何位置觸發,無論是否有文本視圖。 如何才能做到這一點?

didSelectItemAtIndexPathnone of the subView of collectionViewCell respond to that touch時調用。 textView響應這些觸摸時,它won't forward those touches到它的 superView,所以 collectionView 不會得到它。

覆蓋hitTest:withEvent你的方法collectionViewCellCollectionView子類,總是返回self從them.so它明確地使作為的CollectionView first responder

我建議對每個單元格使用UIGestureRecognizer ,並在它錄制時將其發送到UITextView或其他任何東西,也許有更好的解決方案,但由於簡單的原因,我會使用這個 1。

您是否覆蓋touchesEnded: withEvent:

我今天遇到了同樣的問題,我發現我在 collectionview 的容器視圖之一中的touchesEnded中有一些自定義邏輯,我沒有調用

 [super touchesEnded: withEvent:]

當我在touchesEnded完成我的自定義邏輯時。

添加super調用后,一切正常。

選擇UITextView ,在特定情況下UICollectionViewCell ,並切換到屬性檢查器。 取消選中用戶交互已啟用,它應該可以正常工作。

當我有一個滾動視圖占據我的整個集合視圖單元格時,我遇到了這個問題。 雖然上述所有解決方案可能都運行良好,但我想出了自己優雅的解決方法。 我在滾動視圖下放置了一個“選擇”標簽。 由於標簽不是滾動視圖的一部分,它會將點擊事件傳遞給集合視圖。 它還可以作為一個很好的指示器,表明需要用戶采取行動。

就這樣做

textview.isUserInteractionEnabled = false 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM