我正在创建一个应用程序,该应用程序为美国境内的任何可用用户发送呼叫请求,并在此期间通过地图叠加层和进度条更新呼叫发件人。出于某种原因,无论我使用Grand Central Dispatch,CATransaction等尝试过什对象
dispatch_queue_t main_queue = dispatch_get_main_queue();
PFQuery *repQuery = [PFQuery queryWithClassName:@"User"];
[repQuery getObjectInBackgroundWithId:[_currentCallObject objectForKey:@"Rep"] block:^(PFObject *repUser, NSError *error) {
PFGeoPoint *repLocation = [repUser objectForKey:@"location"];
dispatch_async(main_queue, ^{
CLLocationCoordinate2D coordinates[2];
coordinates[0] = _repMapView.userLocation.coordinate;
coordinates[1] = CLLocationCoordinate2DMake(repLocation.latitude, repLocation.longitude);
MKPolyline *route = [MKPolyline polylineWithCoordinates:coordinates count:2];
MKCircle *circle1 = [MKCircle circleWithCenterCoordinate:coordinates[0] radius:40000];
MKCircle *circle2 = [MKCircle circleWithCenterCoordinate:coordinates[1] radius:40000];
[_repMapView addOverlay:circle1];
[_repMapView addOverlay:circle2];
[_repMapView addOverlay:route];
[_repMapView setNeedsDisplay];
[_callProgressView setProgressToStep:4];
[CATransaction flush];
});
}];
进度视图包含在单独的.m文件中,但叠加层在同一个.m文件中绘制:
- (MKOverlayView *)mapView:(MKMapView *)map viewForOverlay:(id <MKOverlay>)overlay
{
// MKCircle and MKPolyline handled here
}
我还在头文件中添加了以下所有内容: MKMapViewDelegate,MKAnnotation,MKOverlay 另外,_repMapView.delegate = self;已在地图视图的初始绘图中设置。
我是否遗漏了一些明显的因素导致用户界面无法实时更新?
感谢。
答案 0 :(得分:0)
啊,我在一个没有输入的块中有那个代码,因为我假设的条件不是。验证它不是地图代码帮助我确定了这个非常基本的无关问题。感谢。