Как использовать вид индикатора активности на iPhone?

Представление индикатора активности полезно во многих приложениях. Любые идеи о том, как добавить, активировать и отклонить представление индикатора активности на iPhone?

Все методы для этого приветствуются здесь.

8 ответов

Решение

Создайте:

spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[spinner setCenter:CGPointMake(kScreenWidth/2.0, kScreenHeight/2.0)]; // I do this because I'm in landscape mode
[self.view addSubview:spinner]; // spinner is not visible until started

Начните:

[spinner startAnimating]; 

Стоп:

 [spinner stopAnimating];

Когда вы, наконец, закончите, уберите спиннер с поля зрения и отпустите.

Взгляните на приложение WordPress с открытым исходным кодом. У них есть очень многократно используемое окно, которое они создали для отображения отображения типа "в процессе" поверх любого представления, которое ваше приложение отображает в данный момент.

http://iphone.trac.wordpress.org/browser/trunk

Файлы, которые вы хотите:

  • WPActivityIndicator.xib
  • RoundedRectBlack.png
  • WPActivityIndicator.h
  • WPActivityIndicator.m

Затем, чтобы показать это, используйте что-то вроде:

[[WPActivityIndicator sharedActivityIndicator] show];

И спрятаться с:

[[WPActivityIndicator sharedActivityIndicator] hide];

В отношении:

Взгляните на приложение WordPress с открытым исходным кодом. У них есть очень многократно используемое окно, которое они создали для отображения отображения типа "в процессе" поверх любого представления, которое ваше приложение отображает в данный момент.

обратите внимание, что если вы используете этот код, вы ДОЛЖНЫ предоставить ВСЕ исходный код для вашего собственного приложения любому пользователю, который его запрашивает. Вы должны знать, что они могут решить упаковать ваш код и продать его в магазине самостоятельно. Это все предусмотрено условиями Универсальной общественной лицензии GNU (GPL).

Если вы не хотите, чтобы вас принуждали к открытию исходного кода, вы не можете использовать что-либо из приложения WordPress для iphone, в том числе окно прогресса указанной работы, без принудительного применения GPL к своему.

Документация по этому вопросу довольно ясна. Это подкласс UIView, поэтому вы используете его, как и любой другой вид. Для запуска / остановки анимации вы используете

[activityIndicator startAnimating];
[activityIndicator stopAnimating];

Использование раскадровки

Создайте-

  • Перейдите на main.storyboard (это можно найти в Навигаторе проектов в левой части вашего XCode) и перетащите "Вид индикатора активности" из библиотеки объектов.

Вид индикатора активности из библиотеки объектов

  • Перейдите в файл заголовка и создайте IBOutlet для UIActivityIndicatorView-

     @interface ViewController : UIViewController
    
         @property (nonatomic,strong) IBOutlet UIActivityIndicatorView *activityIndicatorView;
    
     @end
    
  • Установите соединение из розеток с UIActivityIndicatorView.

Начните:

Используйте следующий код, когда вам нужно запустить индикатор активности, используя следующий код в вашем файле реализации (.m)-

 [self.activityIndicatorView startAnimating];

Стоп:

Используйте следующий код, когда вам нужно остановить индикатор активности, используя следующий код в файле реализации (.m)-

 [self.activityIndicatorView stopAnimating];

Я думаю, что вы должны использовать скрытый лучше.

activityIndicator.hidden = YES
- (IBAction)toggleSpinner:(id)sender
{
    if (self.spinner.isAnimating)
    {
        [self.spinner stopAnimating];
        ((UIButton *)sender).titleLabel.text = @"Start spinning";
        [self.controlState setValue:[NSNumber numberWithBool:NO] forKey:@"SpinnerAnimatingState"];
    }
    else
    {
        [self.spinner startAnimating];
        ((UIButton *)sender).titleLabel.text = @"Stop spinning";
        [self.controlState setValue:[NSNumber numberWithBool:YES] forKey:@"SpinnerAnimatingState"];
    }
}

Показатель активности 2 сек покажет и перейдет на следующую страницу

@property(strong,nonatomic)IBOutlet UIActivityIndicator *activityindctr;

-(void)viewDidload { [super viewDidload];[activityindctr startanimating]; [self performSelector:@selector(nextpage) withObject:nil afterDelay:2];}

-(void)nextpage{ [activityindctr stopAnimating]; [self performSegueWithIdentifier:@"nextviewcintroller" sender:self];}
Другие вопросы по тегам