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


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

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

8 65

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 с открытым исходным кодом. У них есть очень многоразовое окно, которое они создали для отображения типа" activity in progress " поверх любого представления, которое в данный момент отображает ваше приложение.

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

Нужные файлы являются:

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

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

[[WPActivityIndicator sharedActivityIndicator] show];

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

[[WPActivityIndicator sharedActivityIndicator] hide];

В отношении:

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

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

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

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

[activityIndicator startAnimating];
[activityIndicator stopAnimating];

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

Создать -

  • перейти к главному.раскадровка (это можно найти в навигаторе проектов на левой стороне вашего Xcode) и перетащите "вид индикатора активности" из библиотеки объектов.

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

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

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

Начало:

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

 [self.activityIndicatorView startAnimating];

Стоп:

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

 [self.activityIndicatorView stopAnimating];

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

activityIndicator.hidden = YES

Индикатор активности 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];}
- (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"];
    }
}