全部。我需要一些帮助。 我正在使用MapKit,当然我的相机可以上下移动(放大和缩小)。
我想在缩放时更改MKMapCamera音高。 因此,当相机处于低位时,音高会很大(~80),而当相机处于高音时,音高会很小(0)。
这是图片,显示了我想要做的事情:
我尝试创建功能,它会监控海拔高度并自动改变音高:
cam_timer = [NSTimer scheduledTimerWithTimeInterval: 0.05 target: self selector: @selector (test) userInfo:nil repeats: YES];
- (void) test
{
[debug_lbl_1 setText: [NSString stringWithFormat:@"%f", map.region.span.latitudeDelta]];
map.camera.pitch = 45; // changing pitch
}
但是当我在该功能中访问相机时它停止了移动。我的意思是......如果我试图从该功能访问相机,我无法移动,缩放或制作任何地图。
所以我的问题是:当高度(变焦等级)改变时,如何制作能改变音高的功能?拜托,我非常需要一些帮助=(
答案 0 :(得分:1)
您可以使用MKMapCamera和UIView动画
在iOS 10及更高版本中实现此目的mapView.camera = MKMapCamera(lookingAtCenter: pinLocation, fromDistance: 2000, pitch: 0, heading: 0)
let pinLocation = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
let rotationCamera = MKMapCamera(lookingAtCenter: pinLocation, fromDistance: 2000, pitch: 75, heading: 180)
UIView.animate(withDuration: 10, delay: 0, options: .curveEaseInOut, animations: {
self.mapView.camera = rotationCamera
}, completion: nil)
答案 1 :(得分:0)
我会改变MKMapViewDelegate
的方法mapView:regionDidChangeAnimated:
中的音高,而不是使用计时器。
答案 2 :(得分:0)
也许尝试使用KVO来观察mapView.region
的变化?