我有一个成像名称Default.png。这将在应用程序启动时加载。现在我需要添加一个活动指示器。所以它会旋转并使应用看起来很好。
我们知道在加载应用时我们无法添加任何UI组件。所以我想在UIActivityIndicator
中的didFinishLaunchingWithOptions
方法中添加App delegate
。
这些是我遵循的步骤。 我添加了一个视图 添加了default.png 增加了活动指标
然后
[window addSubView:view];
但没有任何事情发生。
帮助如何为此编写代码?
答案 0 :(得分:1)
您已走上正轨,但您需要暂时向窗口添加另一个UIView
(不另一个UIViewContoller
)。我经常这样做。以下是一些适合您的applicationDidFinishLaunching:withOptions:
方法的代码:
[window makeKeyAndVisible]
...
// Create and show an overlay view with a spinner
UIImage *defaultImage = [UIImage imageNamed:@"Default.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:defaultImage];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
// Position the spinner appropriately for our splash image so it's not obscured
CGRect frame = spinner.frame;
frame.origin.x = imageView.frame.size.width / 2 - frame.size.width / 2;
frame.origin.y = imageView.frame.size.height / 5 * 4 - frame.size.height / 2;
spinner.frame = frame;
[spinner startAnimating];
[spinner setHidesWhenStopped:YES];
startupView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
[startupView addSubview:imageView];
[imageView release];
[startupView addSubview:spinner];
[spinner release];
[window addSubview:startupView];
ivar startupView
属于app委托,后来在启动顺序中,另一个方法通过从视图中淡出它来优雅地删除它:
UIActivityIndicatorView *spinner = [[startupView subviews] lastObject];
[spinner stopAnimating];
[UIView animateWithDuration:1.0
delay:0
options:UIViewAnimationOptionCurveLinear
animations:^(void) {
startupView.alpha = 0.0;
} completion:^(BOOL finished) {
[startupView removeFromSuperview];
[startupView release];
}];
值得一提的是,像这样的启动画面并不是Apple视图中的“推荐”启动画面。但他们似乎并不拒绝拥有它们的应用程序。
答案 1 :(得分:0)
我认为你想做一个“自定义闪屏”不是吗?
您无法以这种方式添加活动指示器!
你需要添加一个视图控制器,并在这个视图控制器上用活动指示器做你需要的东西!