动画启动屏幕缩放

Posted

技术标签:

【中文标题】动画启动屏幕缩放【英文标题】:Animating launch screen zoom 【发布时间】:2020-05-12 10:36:14 【问题描述】:

1:

我正在尝试为 UIImageView 的缩小/大小更改设置动画。下面是我希望启动屏幕的外观,然后一旦加载到我的HomeViewController 上。

2:

因为(目前)我正在 HomeViewController 上制作动画我知道这不是正确的做法,所以我的 VC 上的按钮立即显示为动画正在发生

3:

最后,这几乎是我想要的样子,但为了实现这一点,我放置了一个 UIView,它覆盖了按钮而不是徽标,并使其动画淡化 就像按钮一样正在淡出

那么在加载我的HomeViewController 之前,我将如何在启动屏幕上制作初始动画?我似乎无法将我的UIImageView 添加到我的AppDelegate.swift 以在那里制作动画,非常感谢!

代码:(在viewDidLoad 中的HomeViewController

let orginalY = self.imageView.center.y
    UIView.animate(withDuration: 1.0, animations: () -> Void in
        self.imageView?.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
        self.imageView.center.y = orginalY - 100
    , completion: nil)

    UIView.animate(withDuration: 1.2) 
        self.hidingView.alpha = 0
    

【问题讨论】:

【参考方案1】:

您不能在启动屏幕故事板上制作自定义动画。在显示HomeViewController 之前,您必须使用SplashViewController,并在动画的完成块中全屏显示HomeViewController

【讨论】:

这很有意义,我一直想弄清楚为什么我找不到任何关于它的东西,谢谢!所以我将SplashViewController 设为我的初始ViewController,然后呈现HomeViewController【参考方案2】:

您不能为 LaunchScreen 设置动画。您看到动画的大多数应用程序实际上都有一个中间控制器/屏幕。 Flow 应该是这样的。

    启动屏幕(您不能在此处执行任何操作。操作系统将设置您的应用程序) AnimationViewController(在这里您将进行一些初始设置和动画) HomeViewController(您的应用程序的其余流程)。

【讨论】:

以上是关于动画启动屏幕缩放的主要内容,如果未能解决你的问题,请参考以下文章

复制 iBooks 缩放/淡入淡出动画

定位和缩放启动屏幕图像

使用启动屏幕 (.xib) 可停止缩放

为移动目标 lat/lng 和缩放级别的动画偏移地图片段的中心

Facebook图片快速缩放动画,图片未显示初始位置

Flutter动画 --- 平移/旋转/缩放/渐变