1

それ自体がviewControllerのサブビューであるmapView(_mapView)があります。多くのピンをフェッチしているときに、activityIndi​​catorを追加したいのですが、mapViewの上に表示することができません。

 UIActivityIndicatorView *activityIndicator = nil;
    activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] ;
    CGRect frame = activityIndicator.frame;
    frame.origin = CGPointMake(290, 12);
    activityIndicator.frame = frame;
    activityIndicator.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
    activityIndicator.tag = 2;
    [self._mapView addSubview:activityIndicator];
dataMarkers = [[kepnService new] getPlacesByBounds:neCoord.latitude :neCoord.longitude :swCoord.latitude :swCoord.longitude]; // call to webservice
.... other processing code
 [activityIndicator removeFromSuperview]; 

詳細については、私のビュースタックは次のようになります

subviews (
    "<MKMapView: 0x6d6f320; frame = (0 0; 320 460); clipsToBounds = YES; layer = <CALayer: 0x6d99520>>",
    "<UIToolbar: 0x6d93f70; frame = (-1 0; 342 44); autoresize = W+TM; layer = <CALayer: 0x6d8bbf0>>",
    "<UINavigationBar: 0x6d9a4f0; frame = (0 416; 320 44); autoresize = W+BM; layer = <CALayer: 0x6d9a5b0>>"
)
4

1 に答える 1

1

アクティビティインジケーターを追加し、メインスレッドをブロックしてから、削除しているようです。

あなたがすべきことは:

アクティビティインジケーターを追加します。スレッドまたはブロックをバックグラウンドにデタッチして、処理コードを実行します。完了したら、アクティビティインジケーターを削除します。

于 2012-05-22T05:08:46.597 に答える