我最近开始学习objectiveC并开始在iOS6中开发应用程序.
现在,我正在尝试将其转换为iOS7并面临MKMap的问题.
在iOS6中,我使用的是viewForOverlay.
在iOS7中,我将其更改为renderForOverlay.但是,我的应用程序不是调用mapView:rendererForOverlay.以下是我的代码.感谢您的帮助.
- (void) drawPolyline:(NSArray *)locations
{
[mapView setDelegate:self];
...
...
self.polyline = [MKPolyline polylineWithCoordinates:locationCoordinate2DArray count:numberOfLocations];
free(locationCoordinate2DArray);
[mapView addOverlay:self.polyline];
[mapView setNeedsDisplay];
}
- (MKOverlayRenderer*)mapView:(MKMapView*)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
MKPolylineRenderer* lineView = [[MKPolylineRenderer alloc] initWithPolyline:self.polyline];
lineView.strokeColor = [UIColor blueColor];
lineView.lineWidth = 7;
return lineView;
}
Run Code Online (Sandbox Code Playgroud) 我在iOS编码.
我有一个NSArray,其中包含一些MKMapCameras.我想一个接一个地从数组中显示MKMapCameras.
我放了一个while循环并使用了 [self.mapView setCamera:nextCamera animated:YES];
但是,这只显示了第一个和最后一个视图.介于两者之间的一切都太快了.
我想减慢每个相机的运动速度.有没有办法使用CATransaction或使用任何其他动画技巧来实现它.如果是这样,你能告诉我一个示例代码吗?
想要提供更新...我试过下面的代码.但它不起作用......正如我前面提到的,相机移动速度很快.
[CATransaction begin];
[CATransaction setAnimationDuration:5.5];
[CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[CATransaction setCompletionBlock:^{
[self.mapView setCamera:nextCamera animated:YES];
}];
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)