【发布时间】:2011-08-19 18:49:54
【问题描述】:
因此,当我在我的 mapView 中单击标注附件时,几秒钟内没有任何反应,因为它正在发出 url 请求并对其进行解析,所以我想显示活动指示器,这样用户就不会认为它被冻结了。代码如下:
- (void)mapView:(MKMapView *)mv annotationView:(MKAnnotationView *)pin calloutAccessoryControlTapped:(UIControl *)control {
// start activity indicator
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSLog(@"tapped");
ArtPiece *artPiece = (ArtPiece *)pin.annotation;
//when annotation is tapped switches page to the art description page
artDescription *artD = [[artDescription alloc] initWithNibName:@"artDescription" bundle:nil];
artD.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
artD.startingLocation = mapView.userLocation.location.coordinate;
artD.selectedArtPiece = artPiece;
NSLog(@"0");
[self presentModalViewController:artD animated:YES];
NSLog(@"1");
[artD loadArt:artPiece];
NSLog(@"2");
// stop activity indicator
//[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[artD release];
}
奇怪的是(对我来说,也许我缺少一些明显的东西,因为我很缺乏经验),直到方法完成后活动指示器才会显示,并且模态视图开始在视图中显示动画。我把 NSLogs 放进去看看什么需要时间。我在“0”和“1”之间停顿了大约 2 秒,在“1”和“2”之间又停了几秒钟。然后指标终于显示出来了,所以我确信它出于某种原因一直等到方法结束。任何想法为什么?
【问题讨论】:
标签: iphone objective-c cocoa-touch uiactivityindicatorview