我有UIView有3個子視圖,我需要處理觸摸superview和子視圖上的每一個觸摸,但子視圖攔截觸摸。我怎樣才能做到這一點? 謝謝。 UPD:那麼更簡單的方法不存在?事實上,除了繼承之外,更容易發現事件。處理父視圖觸摸
Q
處理父視圖觸摸
2
A
回答
2
你可以使用
[subView setUserinteractionEnabled: NO];
這樣,他們不會攔截觸摸的事件禁用自受理觸摸子視圖,它們將被髮送到僅父視圖。
如果您希望兩個視圖都能接收事件,您可以在子視圖中捕獲事件,然後手動將它們發送到父視圖。
2
你需要重寫觸摸事件在如下子視圖:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.nextResponder touchesBegan: touches withEvent:event];
[super touchesBegan: touches withEvent: event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.nextResponder touchesMoved: touches withEvent:event];
[super touchesMoved: touches withEvent: event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[self.nextResponder touchesEnded: touches withEvent:event];
[super touchesEnded: touches withEvent: event];
}
+0
我不知道你在做什麼,但我認爲每個電話只需要調用super和* not * sefl.nextResponder。查看' - (void)touches *:withEvent:'的文檔 – Olie
相關問題
- 1. 從父視圖更改觸摸處理
- 2. 處理大於其父視圖的子視圖的觸摸
- 3. 地圖視圖觸摸事件處理
- 4. 防止觸摸被父表視圖處理
- 5. UIScrollView觸摸處理子視圖
- 6. 如何在父視圖中處理子視圖的觸摸事件
- 7. UIImageView觸摸處理
- 8. 處理觸摸在
- 9. EXC_BAD_ACCESS:當試圖處理觸摸事件父母UIVIew
- 10. 觸摸事件處理Android的父母和孩子的自定義視圖
- 11. 如何檢測子視圖中的事件觸摸或如何在觸摸子視圖時觸及父視圖?
- 12. 處理觸摸子圖層Cocos2d-x
- 13. 處理觸動從主視角開始 - 如何查看觸摸的子視圖?
- 14. 當父視圖被觸摸時關閉子視圖
- 15. 父視圖和子視圖的觸摸監聽器
- 16. 在子視圖上禁止從父視圖接收觸摸
- 17. 處理觸摸的函數
- 18. UIView不處理觸摸
- 19. UITableView over UICollectionView觸摸處理
- 20. Phonegap觸摸事件處理
- 21. GKMatchmakerViewController不處理觸摸
- 22. 在UIScrollview中處理觸摸
- 23. iPhone:處理觸摸透明
- 24. 在UITableViewController中處理觸摸
- 25. 由多個視圖處理的觸摸事件
- 26. 與多個視圖妥善處理觸摸
- 27. 處理跨多個子視圖的觸摸事件
- 28. UIGestureRecognizer塊子視圖處理觸摸事件
- 29. 如何處理觸摸事件子視圖
- 30. 在主幹視圖中處理觸摸事件
這實際上不是一個壞主意。 +1 –
聽到關於如何最好地在子視圖中捕捉事件並將它們手動發送到父視圖的一些指導會很酷。 :] – weienw