2015-04-20 4 views
0

У меня есть UIViewController и в соответствующей раскадровку сцены у меня есть индикатор активности подключения к контроллеру, как это:UIActivityIndicatorView странное поведение при остановке и запуске

@IBOutlet weak var activityIndicator: UIActivityIndicatorView! 

Я хочу, чтобы скрыть этот индикатор активности, когда представление сначала после того, как пользователи нажали кнопку, внутри своего @IBAction, я хочу начать анимацию индикатора. Так что я написал это:

override func viewDidLoad() { 
    super.viewDidLoad()   
    activityIndicator.stopAnimating() 
} 

и в моем @IBAction у меня есть:

@IBAction func attemptLogin(sender: UIButton) {  
    // Start the activity indicator 
    activityIndicator.startAnimating() 
} 

Но этот код не работает. Экран запускается без отображения индикатора активности, но когда кнопка нажата, он не запускает анимацию, и она даже не появляется.

Я пробовал установить свойство .hidden этого объекта, но не получил никуда. Я действительно не хочу добавлять этот индикатор программно. Есть ли способ заставить его работать?

+1

Вас также может заинтересовать этот класс: https://github.com/goktugyil/CozyLoadingActivity – Esqarrouth

ответ

0

Попробуйте динамически создавать UIActivityIndicatorView

UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    spinner.frame = CGRectMake(0, 0, 24, 24); 
    [spinner startAnimating]; 
    [spinner release]; 
0

Там есть несколько вещей, которые вы могли бы рассмотреть здесь как корень ваших проблем:

  • Показатель активности не привязан к IBOutlet
  • Целевая кнопка не прикреплена к IBAction (убедитесь, что точка останова в вашем методе)
  • Состояние индикатора активности по умолчанию не анимируется, поэтому ваша строка: activityIndicator.stopAnimating() является избыточной.
  • В зависимости от макетов и ограничений вашего представления, идентификатор UIActivityIndicator может находиться вне рамок экранов. Попробуйте распечатать рамку индикаторов активности с NSLog(@"%@", NSStringFromCGRect(activityIndicator.frame)) перед началом анимации.

Надеюсь, это поможет!

Смежные вопросы