我有一個UICollectionView
自定義單元格 - 它們的UITextView
大部分都覆蓋整個單元格。這在使用didSelectItemAtIndexPath
時會出現問題。觸發它的唯一方法是在UITextView
之外點擊。我希望它觸發你點擊的單元格中的任何位置,無論是否有文本視圖。如何才能做到這一點?UICollectionView didSelectItemAtIndexPath在點擊UITextView時不會調用
回答
我會建議使用UIGestureRecognizer
爲每個單元格,當它錄製發送到UITextView
或任何其他,也許可能有更好的解決方案,但我會使用這1,因爲簡單的原因。
didSelectItemAtIndexPath
在none of the subView of collectionViewCell respond to that touch
時被調用。由於textView
響應那些觸動,所以won't forward those touches
它的superView,所以collectionView不會得到它。
覆蓋您collectionViewCell
或CollectionView
子類的hitTest:withEvent
方法,總是返回從them.so self
它明確地使作爲的CollectionView first responder
。
我將此代碼添加到我的UICollectionViewCell實現中:' - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { return self; } '這完全禁用了點擊,現在它甚至在文本視圖外輕觸時都不會觸發。 – imas145
你確定你沒有在UICollectionViewCell中實現touchesBegan方法嗎?你不應該覆蓋單元格中的touchesBegan。 – santhu
問題解決後,我可以告訴你,沒有觸及方法。這裏是代碼,如果你有興趣' - (id)initWithFrame:(CGRect)框架self = [super initWithFrame:frame]; if(self){ //初始化代碼 } return self; } - (void)setTextViewText:(NSString *)text { self.textView.text = text; } - (void)setTitleLabelText:(NSString *)text { self.titleLabel。text = text; }' – imas145
你重寫touchesEnded: withEvent:
?
今天我有同樣的問題,我發現,我在touchesEnded
一些定製的邏輯中的CollectionView的容器觀點之一,我沒有叫
[super touchesEnded: withEvent:]
當我與我的定製邏輯完成在touchesEnded
。
添加超級通話後,一切都很好。
我遇到了這個問題,當我有一個滾動視圖佔用我的整個集合視圖單元格。儘管上述所有解決方案都可能正常工作,但我想出了自己的優雅解決方案。我在我的滾動視圖下放置了一個'選擇'標籤。由於標籤不是滾動視圖的一部分,因此會將點按事件傳遞到收集視圖。它也是一個很好的指標,用戶需要採取措施。
- 1. UICollectionView selectItemAtIndexPath不調用didSelectItemAtIndexPath
- 2. UICollectionView didselectitematindexpath委託?
- 3. didSelectItemAtIndexPath不會在自定義collectionViewCell中有標籤時調用
- 4. didSelectItemAtIndexPath:有時不叫
- 5. 當在UITableviewCell中使用UICollection視圖時不調用UICollectionView委託方法「didSelectItemAtIndexPath」
- 6. Android OnPreferenceClick不會在點擊時調用
- 7. iOS:UIDatePicker在點擊UITextView時不顯示
- 8. UICollectionView的didSelectItemAtIndexPath在UIScrollView裏面沒有被調用
- 9. 在(「點擊」)不會被調用
- 10. 點擊不會在jquery ajax中調用
- 11. LinkButton不會在點擊()上調用
- 12. 的UITextView不首先點擊
- 13. 如何觸發集合視圖的didSelectItemAtIndexPath:在滾動時點擊?
- 14. UiCollectionView中的UITextView
- 15. p:commandLink在p:dataTable不會在第一次點擊時調用動作,但只在第二次點擊時調用
- 16. 的UITextView不會調整
- 17. 在第一次點擊時不會調用動作
- 18. touchesBegan:withEvent:在UIButton上點擊時不會調用
- 19. MKMapView點擊引腳不會調用didSelectAnnotationView
- 20. iOS8 Xcode6 UICollectionView sizeForIndexPath:不會調用旋轉
- 21. UICollectionView不會調用intrinsic內容尺寸
- 22. jQuery事件不會在單擊時調用,而是在雙擊時調用
- 23. jquery函數不會在單擊時調用,而是在雙擊時調用
- 24. didSelectItemAtIndexPath並不總是被稱爲第一個元素UICollectionView
- 25. collectionView didSelectItemAtIndexPath
- 26. UITextView點擊時未打開URL
- 27. UITextView textViewShouldBegin多次點擊時崩潰
- 28. didSelectItemAtIndexPath未在ios swift中調用
- 29. DidSelectItemAtIndexPath不能與collectionview一起使用
- 30. ExpandableListView在點擊時不會展開
我會建議使用'UIGestureRecognizer'每個細胞,當它貼在其發送到文本視圖或什麼的,也許還有可能是更好的解決方案,但我會用這1個 –
問題通過添加UITapGestureRecognizer(感謝解決@羅馬-MT)和使用indexPathForItemAtPoint: – imas145
然後,我會做出回答:)。 –