我正在通过调整edgePadding使MKMapView动画化;但是,在执行动画时,会在动画过程中旋转地图,并且在动画过程中会丢失mapView的现有摄影机标题。
恢复标题并不理想;在动画过程中设置摄像机的方向会中断动画,并且不会执行动画;方向仍然存在,但偏移没有设置动画。
下面的代码片段具有使地图偏移动画化的效果,但是地图的标题被翻转了。动画完成后,我便修复了标题。
我希望地图视图标题保持原样,并且仅对偏移量进行动画处理 调整正在动画的MKMapView的插图时。
请协助
self.mapView.rotateEnabled = YES;
self.mapView.camera.heading = deg;
[MKMapView animateWithDuration:0.4 animations:^{
// top, left, bottom, right
self.mapView.layoutMargins = UIEdgeInsetsMake(y, 0, -y, 0);
[self.mapView setVisibleMapRect:[self.mapView visibleMapRect]
edgePadding:UIEdgeInsetsMake(self.offset, 0.0, 0.0, 0.0)
animated:YES];
} completion:^(BOOL finished) {
self.mapView.camera.heading = deg;
self.mapView.rotateEnabled = NO;
}];
答案 0 :(得分:0)
这是通过捕获MkMapViews当前相机的有效解决方案 并在动画过程中设置MKMapViews相机。
MKMapCamera *mapCamera = [[self.mapView camera] copy]; // the fix 1 of 2
[UIView animateWithDuration:0.4 animations:^{
// top, left, bottom, right
self.mapView.layoutMargins = UIEdgeInsetsMake(y, 0, -y, 0);
[self.mapView setVisibleMapRect:[self.mapView visibleMapRect]
edgePadding:UIEdgeInsetsMake(self.offset, 0.0, 0.0, 0.0)
animated:YES];
[self.mapView setCamera:mapCamera]; // the fix 2 of 2
}];