touchesBegan: withEvent: 不执行解决
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 // // //CreatedbyMLSon15/11/20. //Copyright©2015年mls.Allrightsreserved. // #import"UIScrollView+UITouch.h" @implementationUIScrollView(UITouch) -(void)touchesBegan:(NSSet<UITouch*>*)toucheswithEvent:(UIEvent*)event { //选其一即可 [supertouchesBegan:toucheswithEvent:event]; //[[selfnextResponder]touchesBegan:toucheswithEvent:event]; } @end