Objective C- UIActivityIndi​​catorView没有动画

时间:2013-12-09 22:43:27

标签: ios objective-c uiactivityindicatorview

我在使用UIActivityIndi​​catorView开始设置动画时遇到了一些麻烦。这是我的设置:

在我的视图控制器的viewDidLoad中,我有:

- (void)viewDidLoad{
    schoolList = NO;
   _activityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
   [_activityIndicator startAnimating];

   [NSThread detachNewThreadSelector: @selector(getSchoolList) toTarget: self withObject: nil];
   [self performSelector:@selector(updateUI) withObject:nil afterDelay:20.0];
   [super viewDidLoad];

 }

选择器getSchoolList与服务器通信以检索给定状态的学校列表。然后,调用选择器updateUI以使用列表填充我的UIPickerView。在我的updateUI选择器中,我有:

-(void)updateUI {   
  _schools = [_server returnData];

  if(!(_schools == nil)) {
    NSLog(@"update the UI");
   }
  else
    NSLog(@"Error:Show re-load button");

[_activityIndicator stopAnimating];
}

当我运行此代码时,我的UIActivityIndi​​catorView会显示,但不会生成动画。有人能解释为我的UIActivityIndi​​catorView设置动画的正确方法吗?任何帮助深表感谢。

2 个答案:

答案 0 :(得分:3)

您需要在viewDidLoad中将UIActivityIndi​​catorView添加到您的视图中,如下所示:

- (void)viewDidLoad {
    schoolList = NO;
   _activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

   [self addSubview:_activityIndicator];

   [_activityIndicator startAnimating];

   [NSThread detachNewThreadSelector: @selector(getSchoolList) toTarget: self withObject: nil];
   [self performSelector:@selector(updateUI) withObject:nil afterDelay:20.0];
   [super viewDidLoad];
}

修改

如果_activityIndicator是与UIActivityIndi​​catorView正确连接的IBOutlet,则只需要选中“动画”框。不需要分配/初始化另一个UIActivityIndi​​catorView。

答案 1 :(得分:0)

断开更新功能,但我没有看到您将其添加到层次结构的视图中。我认为您正在查看该计划中的不同指标视图。