为了账号安全,请及时绑定邮箱和手机立即绑定

在启动屏幕中执行代码

在启动屏幕中执行代码

iOS
慕侠2389804 2019-12-03 16:05:01
Xcode允许.xib通过Interface Builder 在文件中创建启动屏幕。是否可以像通常的视图控制器一样使用xib执行一些代码?如果在应用启动时我们可以设置不同的文本/图像/等,那就太好了。
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

不,不可能。


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


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions显示启动屏幕时,甚至都不会完全执行。


很明显,您没有访问您的应用的权限,因此在这一点上您无法执行任何代码。


查看完整回答
反对 回复 2019-12-03
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

我试图在这里做同样的事情。:)


我真的很喜欢其中一些应用程序,其中每次启动应用程序时,它们都会做一些动态的问候文字和图像,例如“今天看起来很好!”,“今天是星期五,美好的一天”等,这是非常可爱。


我做了一些搜索,下面是如何做:(我的代码是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 ...


}

只要做你想要什么都显示,文本,图像,动画等内部customizedLaunchScreenView这里。


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


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


希望能帮助到你。


查看完整回答
反对 回复 2019-12-03
?
阿晨1998

TA贡献2037条经验 获得超6个赞

我也在努力实现这一目标。我尝试了以下方法,它延迟了几秒钟,但对我有用。

  • 在项目设置中创建并设置启动屏幕。

  • 使用自定义类(SplashViewController)创建一个视图控制器,并将其设置为情节提要中的起始视图控制器。

  • 在其中添加容器视图并将其设置为全屏。

  • 将嵌入式segue设置为Storyboard参考。

  • 选择Storyboard Reference,然后在Attribute inspector中的StoryBoard属性中设置启动屏幕。

  • 在SplashViewController中执行您想要的任何操作(播放动画或会话检查等),并在完成后执行segue。

希望能帮助到你!


查看完整回答
反对 回复 2019-12-03
  • 3 回答
  • 0 关注
  • 533 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信