在默认图像上添加activityindicator - 给出的代码

时间:2012-02-15 19:31:25

标签: iphone objective-c cocoa-touch

我有一个成像名称Default.png。这将在应用程序启动时加载。现在我需要添加一个活动指示器。所以它会旋转并使应用看起来很好。

我们知道在加载应用时我们无法添加任何UI组件。所以我想在UIActivityIndicator中的didFinishLaunchingWithOptions方法中添加App delegate

这些是我遵循的步骤。 我添加了一个视图 添加了default.png 增加了活动指标

然后

[window addSubView:view];

但没有任何事情发生。

帮助如何为此编写代码?

2 个答案:

答案 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)

我认为你想做一个“自定义闪屏”不是吗?
您无法以这种方式添加活动指示器!
你需要添加一个视图控制器,并在这个视图控制器上用活动指示器做你需要的东西!