全部。我需要一些帮助。
我正在使用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
}


但是当我使用该功能访问摄像机时,它停止了移动。我的意思是...如果我试图从该功能访问相机,则无法移动,缩放或使用地图进行任何操作。

所以我的问题是:当高度(缩放水平)改变时,如何使功能改变音调?拜托,我非常需要帮助=(

最佳答案

您可以使用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)

09-07 13:56