我想集成一个互动的解雇过渡:当平移时,ViewController B应该被交互地解雇.交互式关闭转换也应该控制ViewController A的scrollView.
我第一次尝试使用UIPanGestureRecognizer并根据平移距离设置scrollView.contentOffset.但是,当平移手势结束时,scrollView偏移必须动画到结束位置.使用 – [UIScrollView setContentOffset:animated:不是一个很好的解决方案,因为它使用线性动画,不考虑当前的平移速度,并不能很好地减速.
所以我认为应该可以将触摸事件从我的平移手势识别器提供到滚动视图.这应该给我们所有的漂亮的滚动视图动画行为.
我尝试覆盖我的UIPanGestureRecognizer子类中的-touchesBegan / Moved / Ended / Cancelled withEvent:方法,如下所示:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [scrollView touchesBegan:touches withEvent:event]; [scrollView.panGestureRecognizer touchesBegan:touches withEvent:event]; [super touchesBegan:touches withEvent:event]; }
但显然,阻止滚动视图进入跟踪模式. (它去拖动= YES,但这是关于它.)我验证了scrollView是userInteractionEnabled,不被隐藏并添加到视图层次结构.
那么如何将我的触摸事件转发到UIScrollView?
解决方法
虽然没有真正解决我问的问题,但我发现了一个解决办法来完成我所需要的.我刚刚添加了一个滚动视图来查看控制器B,并与VC A的滚动视图(垂直滚动时添加到视图层次结构中)进行同步:
// delegate of VC B's scrollView - (void)scrollViewDidScroll:(UIScrollView*)scrollView scrollViewA.contentOffset = scrollView.contentOffset; }
感谢Friedrich Markgraf谁came up with the idea.
原文地址:https://www.jb51.cc/iOS/330049.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。