基本的に、プロパティであり、合成され、独自のアニメーション開始メソッドにある 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];
}
インジケータが正しく表示され、アニメーションが開始されます。マップ リージョンが変更されると、サーバーへのポスト リクエストが実行され、NSXMLParser を使用して解析された XML がレスポンスで受信されます。解析が停止すると、マップが更新されます。これは、インジケーターの停止メソッドを呼び出すときですが、停止するために起動することはありません。これは私の停止方法です。
-(void)stopLoader{
[self.regionChange stopAnimating];
[self.regionChange removeFromSuperView];
NSlog (@"IS THIS EVER CALLED");
}
hidesWhenStopped も試しましたが、これと上記は呼び出されませんか?