2016-11-07 3 views
1

У меня есть пользовательская кнопка, и я должен показать индикатор активности вместо метки названия после нажатия кнопки. Чтобы скрыть titleLabel я используюИндикатор активности на UIButton

self.titleLabel.layer.opacity = 0.0f; 

В методе, когда индикатор начинает анимировать

- (void)startAnimating { 
[self bringSubviewToFront: self.spinner]; 
self.titleLabel.layer.opacity = 0.0f; 
[self.spinner startAnimating]; 

self.titleLabel.layer.opacity = ([self isAnimating]) ? 0.0f : 1.0f; 
[self setNeedsDisplay]; 

}

Это работает, но не для длительного кране. Когда я использую длинный кран, ярлык заголовка не скрыт, над заголовком появляется индикатор активности. Я попытался установить цвет для заголовка в «startAnimating», он работает, но я думаю, что это нехорошее решение. Если кто-то может помочь, это было бы очень признателен :)

+0

Почему вы не используете 'self.titleLabel.hidden = true'? –

+0

Это тоже не работает. Это был первый, который я пытался сделать – Anna

ответ

2

Попробуйте (СВИФТ):

@IBOutlet var buttonTap: UIButton! 
var indicator = UIActivityIndicatorView() 

@IBAction func buttonTap(_ sender: AnyObject) { 
    buttonTap.setTitle("", for: .normal) 
    indicator.center = buttonTap.center 
    indicator.color = UIColor.black 
    indicator.startAnimating() 
} 
Смежные вопросы