私は、最初の起動時に黒い画面上でスプラッシュアニメーションを実行してから、最初のView Controllerに移行しようとしています。そうするために、私はlaunchscreen.storyboardビューコントローラーを黒に設定し、didFinishLaunchingWithOptionsにアニメーションを作成し、appDelegateのサブビュー(以下に示す)として実行しました。現在、アプリは黒い画面で起動し、アニメーションはフェードイン、スリープ、およびフェードアウトしますが、最初のビューコントローラーが空白の背景に設定されていても黒い画面にとどまります。私は、サブビューを削除するか、rootViewControllerを使って強制的に再試行するなど、次のビューコントローラにアプリを送るための複数の補完ブロックを試しましたが、そのような運がありません。私は必要とするコードのほんの一ラインだとはっきりと確信していますが、わかりません。スプラッシュアニメーションの終了後にView Controllerを変更します。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
let imageView = UIImageView(frame: self.window!.frame)
imageView.loadGif(name: "splashanimation")
imageView.alpha = 0.0
self.window!.addSubview(imageView)
let emptyView = UIViewController()
self.window?.rootViewController = emptyView
self.window!.makeKeyAndVisible()
UIView.animate(withDuration: 1.0, animations: {imageView.alpha = 1}, completion: { (value: Bool) in UIView.animate(withDuration: 1.0, animations: {sleep(UInt32(1.5))}, completion: { (value: Bool) in UIView.animate(withDuration: 2.0, animations: {imageView.alpha = 0}, completion: {
** SOMEHOW OPEN THE FIRST VIEW CONTROLLER **
})})})
UIApplication.shared.isStatusBarHidden = true
return true
}
ありがとう、これは完璧に動作します! – dulongj