【问题标题】:Making the launch image display longer xcode使启动图像显示更长的xcode
【发布时间】:2012-03-16 03:09:03
【问题描述】:

我需要有关在 iphone 上启动图像的帮助。 在 xcode 的项目设置中,有一个添加启动图像的选项。 我添加了它,它显示了 2 秒... 我想让它更... 我怎样才能改变它? 谢谢:)

【问题讨论】:

  • 你不应该那样做。如果您显示默认图像的时间超过了必要的时间,您的应用程序看起来很慢,这是糟糕的用户体验。他们已经拥有了您的应用,无需在用户面前宣传您的品牌。
  • 让您的发布图片保持更长的时间是收集 1 星评论的好方法。
  • 我的意思不是更长,比如 10 秒……只有 5……3 秒长

标签: iphone objective-c xcode4.2 ios5


【解决方案1】:

制作默认视图...有一个具有相同默认图像的图像视图...然后在特定时间后使用[self performselector methods启动新视图(主应用程序)

【讨论】:

    【解决方案2】:

    启动图像是为了让您的应用看起来真正具有响应性,并且应该是您的 UI 的快照,位于其上的任何项目(如 tabBar 等)之前。Apple 并不真正希望您将它们用作启动屏幕。

    也就是说,很多人都这样做,为了达到这个结果,您的 App 代理需要在您启动图像时将相同的图像放在屏幕上,然后您可以使用 performSelector:withObject:afterDelay: 延迟启动您的主应用程序

    【讨论】:

    • 嗨.. 我应该在选择器 performSelector: 之后和 withObject: 我是 xcode 新手之后写什么
    • 选择器是您要在序列中下一个运行的方法,您在 performSelector 之后使用@selector(myMethod)。 withObject 是一个可以作为参数传递给方法的对象,如果没有参数,则使用 nil。如果您的参数是一个值,请使用 NSNumber。延迟是运行前等待的秒数。
    【解决方案3】:
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    
      /*this will pause main thread for x interval seconds. 
      put on the top of application:didFinishLaunchingWithOptions, so it will not 
      proceed to show window until sleep interval is finished.*/
    
        [NSThread sleepForTimeInterval:2]; //add 2 seconds longer.
       //other code....
    }
    

    【讨论】:

    • 太棒了! 2秒就足以炫耀品牌而不是惹恼用户。比眨眼还好! tnx
    • 不要这样做。非常糟糕。
    【解决方案4】:

    您也可以通过在

    中应用以下代码来做到这一点
     -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  (NSDictionary *)launchOptions
     {
           [NSThread sleepForTimeInterval:2.0]; // Used For Showing Splash Screen for More Time
     }
    

    首先创建 viewcontroller 设置您想要显示为启动画面/Launc 图像的图像..

    在方法 applicationDidFinishLaunching 中显示该视图: 动画:否

    并在您呈现的另一个视图中编写以下代码

    -(void) viewWillAppear:(BOOL)animated
    {
    
            [self performSelector:@selector(dismiss1) withObject:nil afterDelay:5.0f];
            [super viewWillAppear:animated];
    
    }
    
    
    
    -(void) dismiss1
    {
    
             [self dismissModalViewControllerAnimated:NO];
    
    }
    

    如果你想在每次应用打开时都显示闪屏,那么在 applicationDidBecomeActive 方法中显示闪屏视图控制器

    【讨论】:

    • 我的启动图像并不总是出现。我想在打开应用程序时显示启动图像如何设置。
    • 以上代码是为了更长时间地显示启动图像。您可以通过在资源目录中添加 Default.png 来使用苹果默认值。在运行时它会自动找到 Default.png 并在应用打开时显示。
    • 关于“我的启动图像并不总是出现”的答案是,当您从后台进程中终止应用程序时,该应用程序没有被终止。那么只有它会显示 Default.png
    • 现在测试,当我第一次加载时。它在设备中工作正常然后我再次单击主页按钮打开它启动图像没有出现。但是,在模拟器中显示启动图像。
    • 双击主页按钮,现在长按你的应用程序,删除它。现在打开应用程序,它将显示启动图像
    【解决方案5】:

    您可以在第一个加载的视图中放置一个 UIImageView。比如说,在 FirstViewController 的 viewDidLoad 中

    -(void)viewDidLoad{
     appLogo = [UIImageView alloc]initWithImage:[UIImage imageNamed:@"companyLogo.png"]];
     [appLogo setFrame:CGRectMake..... ];
     self.view addSubView:appLogo];
    
     [self performSelector:@selector(hideAppLogo) withObject:nil afterDelay:1000000 :) ];
    }
    
    -(void)hideAppLogo{
     [appLogo setHidden:YES];
     //let the user use your app now!
    }
    

    【讨论】:

      【解决方案6】:

      您可以通过在将窗口分配给 rootviewController 之前在窗口中添加“Default.png”的 backgroundColor 来实现这一点,并在几秒钟后将 rootviewController 分配给窗口并将窗口背景颜色设置为其默认值。

      像这样 -

      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
       [self performSelector:@selector(openLoginScreen) withObject:nil afterDelay:0.5];
       self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Default.png"]]; 
       [self.window makeKeyAndVisible];
      }
      
      -(void)openLoginScreen{
      self.window = [UINavigation .... "YOUR ROOT VIEWCONTROLLER"];     
      }
      

      【讨论】:

        【解决方案7】:

        您可以使用sleep() 方法。

            - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
        {
            // Override point for customization after application launch.
            sleep(10);
            return YES;
        }
        

        【讨论】:

        • 不要这样做。非常糟糕。
        【解决方案8】:

        在斯威夫特中

        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
                Thread.sleep(forTimeInterval: 2.0)
                return true
        }
        

        【讨论】:

          猜你喜欢
          • 2016-03-21
          • 1970-01-01
          • 1970-01-01
          • 2015-11-28
          • 2015-01-11
          • 1970-01-01
          • 1970-01-01
          • 2013-11-07
          • 2020-01-30
          相关资源
          最近更新 更多