我在視圖中有兩個子視圖。框架是平等的。一個視圖有一個滑動左手勢識別器,而B視圖有一個滑動右手勢識別器。 B在A後面,所以我只能觸發滑動左手勢。我怎樣才能同時接收?如何在另一個視圖後面接收觸摸事件?
回答
- 在背面的圖不會迴應,因爲,這是在後面。
- 對於兩個手勢同時做出響應(同時向左+向右),請將
UIGestureRecognizerDelegate
添加到任一手勢並按照以下建議處理shouldRecognizeSimultaneouslyWithGestureRecognizer
。 - 如果您希望B響應某個手勢(即使它部分被A隱藏),請重新考慮您的層次結構:在B上添加第三個視圖,作爲佔位符,位於A & B(稱爲C)手勢識別器。
您的委託:
// leftGesture
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer
*)otherGestureRecognizer
{
return otherGestureRecognizer == rightGesture;
}
感謝您的回覆,但這不是我想要的。我編輯帖子。 – ZZB
視圖層次結構+手勢齊頭並進。根據你的圖紙,A在B以上;如果你想讓B的隱藏部分對選擇器作出響應,最好的辦法是創建一個不可見的視圖C,其尺寸與B的尺寸相同,並使其浮動到A以上。 – SwiftArchitect
修復**這個問題它與答案相符:你現在有一個孤立問題的批准答覆。然後用你的編輯寫**另一個**帖子。 – SwiftArchitect
我該如何接收?
添加兩個手勢識別器來查看A,因爲這是前面的視圖。由於您需要通過視圖B處理正確的滑動手勢,請將視圖B作爲右滑動手勢識別器的目標。
更好的選擇可能是讓您的視圖控制器成爲兩個手勢識別器的目標,並讓它理清如何處理用戶的手勢。這有助於讓用戶瞭解如何設置用戶界面的業務 - 他們只需要遵循視圖控制器的指示。如果你採納該計劃,您的視圖控制器可能是這樣的部分:
- (void)viewDidLoad
{
UISwipeGestureController *leftSwipe = [[UISwipeGestureController alloc] initWithTarget:self action:@selector(leftSwipe:)];
leftSwipe.direction = UISwipeGestureRecognizerDirectionLeft;
UISwipeGestureController *rightSwipe = [[UISwipeGestureController alloc] initWithTarget:self action:@selector(rightSwipe:)];
rightSwipe.direction = UISwipeGestureRecognizerDirectionRight;
[self.viewA addGestureRecognizer:leftSwipe];
[self.viewA addGestureRecognizer:rightSwipe];
}
- (IBAction)leftSwipe:(id)sender
{
[self.viewA doSomething];
}
- (IBAction)rightSwipe:(id)sender
{
[self.viewB doSomethingElse];
}
- 1. 如何使剪輯視圖在iOS中接收觸摸事件?
- 2. 將觸摸事件轉發到另一個視圖,該視圖被接收事件的視圖部分覆蓋
- 3. 如何將觸摸事件從一個視圖傳遞到另一個視圖
- 4. 如何接收觸摸事件?
- 5. Android視圖在父滾動時停止接收觸摸事件
- 6. 只傳遞一些觸摸事件從一個視圖到另一個視圖
- 7. 查看時被其他視圖覆蓋接收觸摸事件
- 8. 如何檢測子視圖中的事件觸摸或如何在觸摸子視圖時觸及父視圖?
- 9. iPhone應用程序不接受觸摸事件,在替換一個視圖後與另一個
- 10. 觸摸事件視圖和子視圖
- 11. 在子視圖作用於子視圖後,阻止接收觸摸事件的父視圖
- 12. 如何將觸摸事件傳遞給tableview下的另一個視圖?
- 13. 安卓視圖不能接收觸摸
- 14. 如何接收視圖層次結構中發生的所有觸摸事件?
- 15. 的UIView未接收到觸摸事件
- 16. 接收屏幕觸摸事件
- 17. 嵌套UIViews不接收觸摸事件
- 18. 從Nib的UIView接收觸摸事件
- 19. 主視圖外部的子視圖不會接收觸摸事件
- 20. Android:如何檢測視圖上的onTouch事件,並在視圖外面觸摸?
- 21. UIWindow在從其刪除子視圖後停止接收觸摸
- 22. 觸發從一個視圖到另一個視圖的事件
- 23. 可能在後臺接收觸摸屏事件嗎?
- 24. 如何將觸摸事件轉發到uicollectionview背後的視圖?
- 25. 如何在Qt中接收觸摸事件?
- 26. 只將觸摸事件轉發給正在觸摸的視圖
- 27. 在子視圖上禁止從父視圖接收觸摸
- 28. 地圖視圖觸摸事件處理
- 29. 如何在圖像視圖中應用觸摸事件
- 30. 如何在SpriteKit中呈現場景後立即接收觸摸事件?
附加swipegesture recongnizer到窗口。然後你需要處理滑動。 –