在应用程序启动期间显示活动指示器

问题描述 投票:3回答:4

我正在尝试在启动过程中添加活动指示器。我确实有一个启动图像,但我宁愿仅一个指示器。我将以下内容添加到我的应用程序委托中,但未显示该指示器。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // *******Create activity indicator****
    UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(225, 115, 30, 30)];
    [activity setBackgroundColor:[UIColor clearColor]];
    [activity setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleGray];
    [window addSubview: activity];
    [activity release];

    [activity startAnimating];
    activity.hidden = FALSE;
    // *******End activity indicator****

    MainViewController *viewController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
    self.mainViewController = viewController;

    [window addSubview:[mainViewController view]];
    mainViewController.view.frame = CGRectMake(0, 20, 320, 411);

    [window addSubview:[rootController view]];
    [window makeKeyAndVisible];
#if !TARGET_IPHONE_SIMULATOR
    [application registerForRemoteNotificationTypes: 
     UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
#endif

    application.applicationIconBadgeNumber = 0;

    // Hide indicator
    [viewController release];
    activity.hidden = TRUE;

    [activity stopAnimating];
    return YES;
}

我从2009年开始访问此问题,但该解决方案对我不起作用。iPhone-SDK:Activity Indicator during Startup?

objective-c xcode cocoa xcode4
4个回答
2
投票

我认为通过查看UIApplicationDelegate的文档是不可能的>

最早调用您的应用程序位于

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

顾名思义就是您的应用hasFinishedLaunching

显示和隐藏指示器时没有任何反应的原因与穿线有关。用户界面只会在方法的最后更新,而更改的最终结果将是隐藏指示器。


5
投票

对于所有需要此服务的人,我知道有很多...(基于Xcode 4.2.1版制作)


1
投票

另一种解决方案是让launchimage


0
投票

这是不可能的(正如@ Paul.S所说)。但是,您可以通过在项目中添加Default.png-初始屏幕来模拟此情况(静态,因此不会设置动画)。

但是,我认为,您应该投资于更好的性能。例如:您是否将您的应用程序与未使用的框架(例如QuartzCore,MapKit)链接。启动应用程序最多需要2秒。目前,您实际上不需要向用户显示活动指标。如果需要更长的时间,则应查看它为何如此缓慢,而不是尝试隐藏它。

© www.soinside.com 2019 - 2024. All rights reserved.