如何查看弹出动画的进度?

Posted

技术标签:

【中文标题】如何查看弹出动画的进度?【英文标题】:How do I see the progress of a pop animation? 【发布时间】:2015-10-20 22:16:15 【问题描述】:

我有一个主视图控制器和一个详细视图控制器。我有一个按钮,当前在 push segue 到细节后消失,并在调用 pop segue 时重新出现,无论是交互式手势还是后退按钮。

这看起来真的很突然,我想用弹出手势淡入按钮上的 alpha,但我没有看到 UINavigationControllerDelegate 的任何委托或数据源方法显示弹出手势的进度。有没有可以帮助解决这个问题的库?

【问题讨论】:

【参考方案1】:

这可以通过 UIView 动画来完成。

想法是将按钮的 alpha 设置为 0,使其不可见,然后将其设置为值 1 以创建淡入效果。

self.myButton.alpha = 0;

[[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^
    self.myButton.alpha = 1;
 completion:^(BOOL finished) 
    // Code for completion of animation.
];

这可以放在视图控制器的viewDidAppear: 方法中。

【讨论】:

如果只允许后退按钮弹出就可以了。但是因为 uinavigationcontroller 允许交互式平移手势,所以我需要一种在过渡期间动态更改 alpha 的方法,而不是在过渡完成时。 @GeorgeUrick 如果将动画移动到viewWillAppear:,它将在涉及返回的交互式平移手势的过渡期间发生。

以上是关于如何查看弹出动画的进度?的主要内容,如果未能解决你的问题,请参考以下文章

如何在基于导航的应用程序中更改推送和弹出动画

如何禁用 NavigationView 推送和弹出动画

VUE弹窗动画-从下到上弹出,从中间展开等

如何在ios中自定义推送和弹出动画时将视图传递给另一个控制器? [关闭]

Solidworks如何制作动画

Angular (4, 5, 6, 7) - ngIf 上滑入滑出动画的简单示例