我正在尝试在启动过程中添加活动指示器。我确实有一个启动图像,但我宁愿仅一个指示器。我将以下内容添加到我的应用程序委托中,但未显示该指示器。
- (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?
我认为通过查看UIApplicationDelegate的文档是不可能的>
最早调用您的应用程序位于
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
顾名思义就是您的应用
hasFinishedLaunching
显示和隐藏指示器时没有任何反应的原因与穿线有关。用户界面只会在方法的最后更新,而更改的最终结果将是隐藏指示器。
对于所有需要此服务的人,我知道有很多...(基于Xcode 4.2.1版制作)
另一种解决方案是让launchimage
这是不可能的(正如@ Paul.S所说)。但是,您可以通过在项目中添加Default.png
-初始屏幕来模拟此情况(静态,因此不会设置动画)。
但是,我认为,您应该投资于更好的性能。例如:您是否将您的应用程序与未使用的框架(例如QuartzCore,MapKit)链接。启动应用程序最多需要2秒。目前,您实际上不需要向用户显示活动指标。如果需要更长的时间,则应查看它为何如此缓慢,而不是尝试隐藏它。