使用 interactivePopGestureRecognizer 交互式过渡同步另一个动画

Posted

技术标签:

【中文标题】使用 interactivePopGestureRecognizer 交互式过渡同步另一个动画【英文标题】:Syncing another animation with interactivePopGestureRecognizer interactive transition 【发布时间】:2014-01-15 08:44:31 【问题描述】:

我的应用左下角有这个自定义后退按钮。当导航堆栈上没有更多视图控制器时,按钮向下过渡,然后只有根视图控制器。现在我介绍了 ios7 标准的“滑动弹出”功能,我想根据滑动手势移动它弹出的视图的距离来进行按钮转换。

到目前为止,我已经将我自己的导航控制器作为目标添加到 interactivePopGestureRecognizer 以接收滑动操作。所以我知道滑动何时开始、移动(速​​度、方向和点)以及何时停止。所以我可以让后退按钮的位置取决于手指在屏幕上的位置,没有问题。

问题在于,当用户从屏幕上抬起手指时,视图要么弹出,要么返回到其原始位置。我发现检测到这一点的唯一方法是在UINavigationControllerDelegate 方法中 - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 当应用返回的视图完全可见(动画已完成弹出)时调用此方法。所以判断视图是否弹出的方法是在 touches 结束后等待一段时间,如果上面的方法被调用,这当然不是一个好的解决方案。

如果我能收到有关动画位置和动画完成/反转的通知,那绝对是最好的情况。另一件要提到的是,我认为近似会很困难,因为弹出或不弹出的决定不仅取决于手指在释放时的屏幕位置,还取决于速度等。

任何提示将不胜感激。

【问题讨论】:

【参考方案1】:

无论如何,我确实设法解决了这种问题。如果动画完成与否,至少可以得到通知。我在另一个与此类似的问题here 中发布了我的答案,希望对您有所帮助。

【讨论】:

以上是关于使用 interactivePopGestureRecognizer 交互式过渡同步另一个动画的主要内容,如果未能解决你的问题,请参考以下文章

测试使用

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”