web-dev-qa-db-ja.com

LaunchScreenをプログラムでコーディングする方法はありますか

Xcode7とSwiftを使用しています。LaunchScreen.storyboardを開いてカスタムクラスを設定しようとすると、LaunchScreenストーリーボードにカスタムクラスを設定できないとXcodeが警告します。したがって、私の質問は、IBを使用して要素をドラッグアンドドロップする必要がないようにLaunchScreenをプログラムでコード化する方法はあるかということです。

15
Arunabh Das

いいえ、起動画面が表示されますbeforeアプリの実行が開始され、読み込み中にSpringboardからアプリに移行します。

固定画像を使用することも、標準の静的なUI要素(ラベルと画像)のみを使用してシンプルなストーリーボードシーンを使用することもできます。

このストーリーボードシーンは実際にはOSによって読み込まれて表示されるため、コードをそのコンテキストで実行できるようにするとセキュリティリスクが発生します。

32
Paulw11

うまくいきます

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    imageArr = ["1.jpeg","2.jpeg","3.jpeg","4.jpeg"]

    let RandomNumber = Int(arc4random_uniform(UInt32(self.imageArr.count)))
    //imageArr is array of images
     let image = UIImage.init(named: "\(imageArr[RandomNumber])")

    let imageView = UIImageView.init(image: image)
    imageView.frame = UIScreen.main.bounds

    window = UIWindow(frame: UIScreen.main.bounds)
    window?.rootViewController = UIStoryboard(name: "LaunchScreen", bundle: nil).instantiateInitialViewController()
    window?.rootViewController?.view.addSubview(imageView)
    window?.rootViewController?.view.bringSubview(toFront: imageView)
    window?.makeKeyAndVisible()

    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) {
        self.window?.rootViewController = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController()
    }
    return true
}
0
iOS_with_me