UIButton上的活动指示器

时间:2016-11-07 11:50:28

标签: ios objective-c uibutton title uiactivityindicatorview

我有一个自定义按钮,我需要在点击按钮后显示活动指示器而不是标题标签。要隐藏titleLabel,请使用

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”中设置标题的颜色,它可以工作,但我认为这不是一个好的解决方案。 如果有人可以提供帮助,我们将非常感激:)

1 个答案:

答案 0 :(得分:3)

试试这个(swift):

@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()
}