基本上我显示一个UIActivityIndicatorView,它是一个属性并且是合成的,并且在它自己的开始动画方法中。我初始化此指标并将其添加为子视图,如下所示
-(void)startLoader{
//regionChange is the ivar for UIActivitiyIndicatorView
self.regionChange = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
self.regionChange.frame = CGRectMake(145.0f, 180.0f, 40.0f, 40.0f);
[self.view addSubview:self.regionChange];
[self.regionChange startAnimating];
}
并在使用地图工具包调用以下方法时启动动画。
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{
//This calls the activity start method
[self startLoader];
}
指示符正确显示并开始动画。当映射区域发生更改时,它会对服务器发出post请求,并在使用NSXMLParser解析的响应中接收XML。当解析已经停止时,它会更新地图,这是我为指示器调用stop方法但是它永远不会触发停止它。这是我的停止方法中的什么。
-(void)stopLoader{
[self.regionChange stopAnimating];
[self.regionChange removeFromSuperView];
NSlog (@"IS THIS EVER CALLED");
}
我也试过了hidesWhenStopped然而这个和上面的内容从未被调用过?