修改UIScrollView 的手势代理

1. 需求来源

实际开发中,我们经常会遇到多滚动视图的嵌套逻辑。

为了解决这一问题,不论使用哪种方法,都不可避免的会需要通过控制上级手势,来动态调整相关视图相对位置,及其内视图逻辑

其中最重要的代理方法,便是

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer

该代理方法,直接影响了手势是否互斥,简单来说

就是“一个连贯的手势操作,是否能跨组件被响应

 

2.遇到的问题

使用UITableView等二级封装组件是,手势的代理会根据UITableView的delegate,同时绑定到目标类,可以直接使用或修改手势代理方法。

但是UIScrollView是不可以的

UISrollView 的

panGestureRecognizer.delegate 是他本身,且这是个只读属性,是不允许被修改的

 

3.解决办法

新建相关UIScrollView的类目,在.m文件中,重写相关的代理方法,来实现控制和修改

 

BY: Chu

posted @ 2019-12-31 16:27  WidgetBox  阅读(437)  评论(0编辑  收藏  举报