使用 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)和不使用它有啥区别?