touchesBegan: withEvent: / touchesMoved: withEvent: / touchesEnded: withEvent: 等只能被UIView捕獲(如有問題請指出對請指出,路過的大牛請勿噴),當我們創建
UIScrollView 或 UIImageView 時,當點擊時UIScrollView 或 UIImageView 會截獲touch事件,導致touchesBegan: withEvent:/touchesMoved: withEvent:/touchesEnded: withEvent: 等方法不執行。解決辦法:當UIScrollView 或 UIImageView 截獲touch事件后,讓其傳遞下去即可(就是傳遞給其父視圖UIView)
可以通過寫UIScrollView 或 UIImageView 的category 重寫touchesBegan: withEvent: / touchesMoved: withEvent: / touchesEnded: withEvent: 等來實現
// // UIScrollView+UITouch.m //  // // Created by MLS on 15/11/20. // Copyright © 2015年 mls. All rights reserved. //  #import "UIScrollView+UITouch.h"  @implementation UIScrollView (UITouch)  - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {   // 選其一即可   [super touchesBegan:touches withEvent:event]; //  [[self nextResponder] touchesBegan:touches withEvent:event]; }  @end 新聞熱點
疑難解答