UIScrollView横向滑动跟系统的返回手势冲突解决方法

问题

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值