1

易于复制:

  • 创建一个新应用
  • 将此代码复制到启动时启动的视图控制器

    class ViewController: UIViewController {
    
        override func viewDidAppear(animated: Bool) {
            UIView.animateWithDuration(5,
                delay: 5,
                options: UIViewAnimationOptions.CurveEaseInOut,
                animations: {
    
                }, completion: { finished in
                    print("finished")
                }
            )
        }
    
    }
    

当我希望它在启动后 10 秒被记录(5 来自动画持续时间 + 5 来自延迟)时,会立即记录“完成”。

我该如何解决?

我要解决的原始问题是presentViewController(with animated: false) before viewDidAppear,这样我就可以LoginViewController在后面的控制器视图出现之前向用户显示 a 。但事实证明我无法调用or presentViewControllerviewDidLoadviewWillAppear

所以我的解决方法是将LoginViewController' 视图的 alpha 设置为 0 并将其设置为 1 (我知道,这是一个不同的效果,但它比调用presentViewController导致viewDidAppear主控制器显示并在一毫秒后(not literally)LoginViewController视图出现)。

4

0 回答 0