【问题标题】:Change splash screen image programmatically [duplicate]以编程方式更改启动画面图像[重复]
【发布时间】:2015-07-13 17:03:24
【问题描述】:

是否允许通过代码设置启动画面。
既然要改很多次?

【问题讨论】:

  • “适用”是什么意思?
  • 我猜不,因为你必须创建自己的屏幕
  • 启动图像在IPA中,在一个特殊的地方有特殊的名字,所以你不能用任何方法改变IPA。
  • 如前所述,这看起来像是一个重复的问题。无论如何,答案是否定的。有两个原因:一个是代码刚刚加载,因此您不能让您的代码为您完成工作。其次,闪屏用于感知性能。显示静态启动画面需要最少的资源。

标签: ios objective-c ios8 splash-screen dynamic-splash-screen


【解决方案1】:

你不能。

您必须创建自己的启动画面,显示在您的应用程序的默认 iOS 之后。

【讨论】:

    【解决方案2】:

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

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

    所以很明显,您对您的应用没有任何访问权限,因此此时您无法执行任何代码。

    【讨论】:

      【解决方案3】:

      不,你不能。对不起!!!

      iphone 应用程序的默认图像必须是捆绑包中的固定图像文件。您不能动态更改它。

      虽然您可以添加动画以使其具有创意。

      【讨论】:

        【解决方案4】:

        您只能在应用启动时将单个图像加载为启动画面..

        但是,如果您想以编程方式启动任何图像..在应用程序加载主屏幕之前,如启动屏幕..您可以使用如下

        AppDelegate 的didFinishLaunchingWithOptions 委托方法..

        UIImage *splashImage = [UIImage imageNamed:@"Splash_Img.png"];
            UIImageView *splashImageView = [[UIImageView alloc] initWithImage:splashImage];
            splashImageView.frame=[[UIScreen mainScreen] bounds];
            [self.window.rootViewController.view addSubview:splashImageView];
            [self.window.rootViewController.view bringSubviewToFront:splashImageView];
            [UIView animateWithDuration:1.5f
                                  delay:2.0f
                                options:UIViewAnimationOptionCurveEaseInOut
                             animations:^{
                                 splashImageView.alpha = .0f;
                                 CGFloat x = -60.0f;
                                 CGFloat y = -120.0f;
                                 splashImageView.frame = CGRectMake(x,
                                                                    y,
                                                                    splashImageView.frame.size.width-2*x,
                                                                    splashImageView.frame.size.height-2*y);
                             } completion:^(BOOL finished){
                                 if (finished) {
                                     [splashImageView removeFromSuperview];
                                 }
                             }];
        

        上面的代码不是闪屏。但它会在主屏幕加载之前加载。

        【讨论】:

          【解决方案5】:

          不,您不能以编程方式更改启动画面、应用程序图标或应用程序名称。
          它们都保持不变,无法更改。
          但是您可以使用 UIImageView 创建您的自定义启动画面,并且可以通过编程方式对其进行更改。

          【讨论】:

          • 现在您可以更改应用图标
          猜你喜欢
          • 1970-01-01
          • 2020-05-23
          • 2020-04-10
          • 2011-07-24
          • 1970-01-01
          • 1970-01-01
          • 2011-04-18
          相关资源
          最近更新 更多