问题
UIScrolView,我们应该很熟悉了,它几乎是所有能滑动控件的父类,理所当然它被使用的地方也有很多,基本可以肯定的所有app都要用到它,我们在使用的UIScrollView的时候,肯定用到它进行布局,我们使用UIScrollView的时候肯定会跟系统的手势产生冲突。今天我们看一下返回手势跟它的滑动手势的冲突。
解决办法
我们其实有两种方法解决这种问题:
1. 我们可以用继承的方法,让其继承我们自己写的父类的自定义的UIScrollView
//导航栏的滑动返回手势跟UIScrollView的滑动手势冲突解决方案
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if (point.x < 20) { // location.x为系统的某个点的x
return nil;
} else {
return [super hitTest:point withEvent:event];
}
}
2.我们可以用类别呀 类别呀(重要的话说两遍)
//导航栏的滑动返回手势跟UIScrollView的滑动手势冲突解决方案
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if (point.x < 20) { // location.x为系统的某个点的x
return nil;
} else {
return [super hitTest:point withEvent:event];
}
}
当然这个所有的UIScrollview都执行这个方法的呀,要想个别不执行这个方法,稍微加个判断就可以的呀
- (BOOL)checkSelfBack{
if ([self isKindOfClass:[LYFamousScrollView class]]) {
return NO;
}
return YES;
}