我在使用UIActivityIndicatorView开始设置动画时遇到了一些麻烦。这是我的设置:
在我的视图控制器的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];
}
当我运行此代码时,我的UIActivityIndicatorView会显示,但不会生成动画。有人能解释为我的UIActivityIndicatorView设置动画的正确方法吗?任何帮助深表感谢。
答案 0 :(得分:3)
您需要在viewDidLoad
中将UIActivityIndicatorView添加到您的视图中,如下所示:
- (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
是与UIActivityIndicatorView正确连接的IBOutlet,则只需要选中“动画”框。不需要分配/初始化另一个UIActivityIndicatorView。
答案 1 :(得分:0)
断开更新功能,但我没有看到您将其添加到层次结构的视图中。我认为您正在查看该计划中的不同指标视图。