场景介绍
在ViewController的View上添加Scrollview-全屏
在该Scrollview上添加textfiled控件,为了便捷退出键盘.添加
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
}
方法.
发现touchsBegan方法不能被相应,原因是Scrollview将事件捕获了,
于是 百度到网络上著名的 category 方法
UIScrollView+UITouch.h
UIScrollView+UITouch.m
- (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];
}
至此,解决了touchesBegan方法可以绕过Scrollview的影响,
但是问题来了,通过以上办法,textfiled在使用手写输入的时候,会造成闪退 即报 UIKBBlurredKeyView candidateList 错误.
网络上通常的方法 就是 添加一层view
http://blog.youkuaiyun.com/u011736319/article/details/47316795但是个人还是觉得这样显得太麻烦,
算了,还是去依赖 IQKeyboardManager 库吧 10.1k的赞不是开玩笑的