Добавление индикатора активности на изображение по умолчанию - указан код - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть воображаемое имя Default.png. Это загрузит, когда приложение запускается. Теперь мне нужно добавить индикатор активности к нему. Так что оно будет крутиться и сделает приложение красивым.

Мы знаем, что не можем добавлять какие-либо компоненты пользовательского интерфейса при загрузке приложения. Поэтому я подумал добавить UIActivityIndicator в метод didFinishLaunchingWithOptions в App delegate.

Это шаги, за которыми я следовал. я добавил вид добавил default.png добавлен индикатор активности

1010 * тогда *

[window addSubView:view];

Но ничего не происходит.

Помогите, как написать код для этого?

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Вы на правильном пути, но вам нужно временно добавить еще 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 принадлежит делегату приложения, и позже в последовательности запуска другой метод изящно удаляет его, исчезая из вида:

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. Но они, похоже, не отвергают приложения, в которых они есть.

0 голосов
/ 15 февраля 2012

Я думаю, что вы хотите сделать "пользовательский экран-заставку" не так ли?
Вы не можете добавить индикатор активности таким образом!
Вам нужно добавить контроллер представления, и на этом контроллере представления делать то, что вам нужно, с индикатором активности!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...