【问题标题】:How to set an animation once the view controller is loaded加载视图控制器后如何设置动画
【发布时间】:2018-12-20 16:20:06
【问题描述】:

我的目标是在加载第二个 viewController 时触发动画。加载视图后如何调用该函数?

代码如下:

UIView.animate(withDuration: 1.5, animations: {self.greyScreen.frame.origin.y = -0.39*self.screenHeight}, completion: nil)

非常感谢任何建议!

【问题讨论】:

  • viewDidAppear? viewDidLoad?
  • 您应该阅读处理视图相关通知的文档。 developer.apple.com/documentation/uikit/uiviewcontroller
  • 您用viewdidload 标记了问题。似乎您已经知道加载视图控制器时在哪里做某事的答案。当然,在加载视图控制器时启动动画是没有意义的,因为它还不可见。

标签: ios swift viewcontroller viewdidload


【解决方案1】:

viewDidAppear()UIViewContoller Life Cycle 的方法,当屏幕完全可见时调用,即将所有视图加载到内存层次结构中。所以把你的这个动画块放到这个方法中。你会得到你的动画效果

【讨论】:

  • 非常感谢这工作!对 xcode 来说非常新,所以甚至不知道 viewDidAppear 但很有意义!
  • @GarrisRyder 仅供参考 - 这与 Xcode 无关。这是关于 UIViewController 类的生命周期,而不是关于您用于编写应用程序的 IDE。了解编辑器、语言和所使用的框架之间的区别很重要。
  • 哦,好吧,公平点 - 抱歉,rmaddy 下次会尽量避免这个错误。
【解决方案2】:

将该代码放入viewDidAppear

viewDidAppear 在视图显示在设备上时被调用,因此在此方法中添加代码将在视图显示后立即触发动画。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多