UIActivityIndi​​cator查看停止和启动时的奇怪行为

时间:2015-04-20 22:50:23

标签: ios swift uiactivityindicatorview

我有一个UIViewController,在各自的故事板场景中,我有一个活动指示器连接到控制器,如下所示:

@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属性,但无法到达任何地方。我真的不想以编程方式添加此指标。有没有办法让它发挥作用?

2 个答案:

答案 0 :(得分:0)

尝试动态创建UIActivityIndicatorView

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

答案 1 :(得分:0)

你可以在这里考虑几件事情作为问题的根源:

  • 活动指示符未附加到IBOutlet
  • 按钮的目标未附加到IBAction(在您的方法中放置一个断点以确定)
  • 活动指标的默认状态未设置动画,因此您的行activityIndicator.stopAnimating()是多余的。
  • 根据您的视图的布局/约束,UIActivityIndi​​cator可能位于您的屏幕框架之外。在开始动画之前,尝试使用NSLog(@"%@", NSStringFromCGRect(activityIndicator.frame))打印活动指示器框架。

希望这有帮助!