IOS activityIndi​​cator子视图上面是MKMapView

时间:2012-05-22 05:05:19

标签: iphone ios user-interface

我有一个mapView(_mapView),它本身就是我的viewController的一个子视图,我想在我获取大量的引脚时添加一个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>>"
)

1 个答案:

答案 0 :(得分:1)

好像你正在添加活动指示器,阻止主线程然后将其删除。

你应该做的是:

添加活动指标。 将线程或块分离到后台以执行处理代码。 完成后,删除活动指示器。