您的位置:首页 > 产品设计 > UI/UE

ios UIScrollView不能响应TouchesBegin:的事件的解决办法

2016-02-29 17:35 465 查看
1:@property MyScrollView *scrollView;

2:给MyScrollView,增加类别:MyScrollView+Touch

3:在类别里实现下面三个方法:

@implementation MyScrollView (Touch)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

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

[super touchesBegan:touches withEvent:event];

}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

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

[super touchesMoved:touches withEvent:event];

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

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

[super touchesEnded:touches withEvent:event];

}

@end

4:- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

[self hiddenkeyBoard];

}

以上方法会造成手写输入时崩溃,最好不要再使用,解决法案如下


解决方案

1.在UIScrollView上面加一个UIView,通过在view上面的手势来改变键盘
UITapGestureRecognizer *tapGr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard:)];
tapGr.cancelsTouchesInView = NO;
[backView addGestureRecognizer:tapGr];
1
2
3

2.在UITableView上改变键盘
UITapGestureRecognizer *tapGr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard:)];
//记得加这句,不然会屏蔽到TableView的点击事件等
tapGr.cancelsTouchesInView = NO;
[tableView addGestureRecognizer:tapGr];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios uiscrollview