在启动屏幕执行代​​码

Xcode允许通过Interface Builder在.xib文件中创build启动屏幕。 是否有可能执行一些代码与XIB,就像在通常的视图控制器? 如果我们可以在应用程序启动时设置不同的文本/图像/等,那将是非常好的。

不,这是不可能的。

启动屏幕显示时,您的应用程序将处于加载状态。

即使- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions将不会完全执行,而启动屏幕显示。

所以很明显,你没有任何访问你的应用程序,所以在这一点上,你不能执行任何代码。

我正试图在这里做同样的事情。 🙂

我真的很喜欢一些应用程序,每次应用程序启动时,他们会做一些dynamic的问候文本和图像,比如“今天你看起来不错!”,“今天是星期五,美好的一天”等等。非常可爱。

我做了一些search,下面是如何做到这一点:(我的代码是XCode 7,带有一个launchscreen.xib文件)

 class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var customizedLaunchScreenView: UIView? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. application.statusBarHidden = true // customized launch screen if let window = self.window { self.customizedLaunchScreenView = UIView(frame: window.bounds) self.customizedLaunchScreenView?.backgroundColor = UIColor.greenColor() self.window?.makeKeyAndVisible() self.window?.addSubview(self.customizedLaunchScreenView!) self.window?.bringSubviewToFront(self.customizedLaunchScreenView!) UIView.animateWithDuration(1, delay: 2, options: .CurveEaseOut, animations: { () -> Void in self.customizedLaunchScreenView?.alpha = 0 }, completion: { _ in self.customizedLaunchScreenView?.removeFromSuperview() }) } return true } // other stuff ... } 

在这里定制的 LaunchScreenView中,只要做你想要显示的内容,文字,图像,animation等。

在启动结束时,只需使用alpha值更改淡出此自定义UIView,然后完全删除它。

多么酷啊? 我绝对喜欢它!

希望能帮助到你。

我也试图做到这一点。 我尝试了以下,它延迟了几秒钟,但为我工作。

  • 在项目设置中创build并设置启动屏幕。
  • 使用自定义类(SplashViewController)创build视图控制器,并将其设置为故事板中的起始视图控制器。
  • 添加一个容器视图,并将其设置为全屏。
  • 将embedded的segue设置为Storyboard参考。
  • selectStoryboard Reference并从属性检查器的StoryBoard属性中设置启动屏幕。
  • 做任何你想在SplashViewController(播放animation或会话检查等),并执行完成后。

希望能帮助到你!