当前位置:主页 > 移动开发 > iOS代码 >

touchesBegan: withEvent: 不执行解决

时间:2020-12-20 13:23:50 | 栏目:iOS代码 | 点击:

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 




您可能感兴趣的文章:

相关文章