iOS UIScrollView不能响应TouchBegin事件的处理方法:

原因:UIView的Touch事件被UIScrollview捕获了,所以UIView里面的Touch事件没有响应——————解决方法:将UIScrollview的捕获的Touch事件往上传;————给UIScrollview添加类别:UIScrollView+UITouch.h

代码:

#import "UIScrollView+UITouch.h"

 

@implementation UIScrollView (UITouch)

 

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    [[self nextResponder] touchesBegan:touches withEvent:event];

    [super touchesBegan:touches withEvent:event];

}

-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    [[self nextResponder]touchesMoved:touches withEvent:event];

    [super touchesMoved:touches withEvent:event];

}

-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    [[self nextResponder]touchesEnded:touches withEvent:event];

    [super touchesEnded:touches withEvent:event];

}

@end

 

 

app上线之后因为这个报了一个错:

[__NSCFBoolean objectForKey:]: unrecognized selector sent to instance 0x19fee40b0
(null)
解决办法:在在UIScrollView上面加一个UIView,通过在view上面的手势来改变键盘,代码如下:

 UITapGestureRecognizer*tapView=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapInTouchView)];

    tapView.numberOfTapsRequired=1;

    tapView.numberOfTouchesRequired=1;

    [self.touchView addGestureRecognizer:tapView];

 

posted on 2015-11-26 10:41  envyhappy  阅读(1902)  评论(0编辑  收藏  举报