Ios MKMapView加载时缩放到注释时出现问题

Ios MKMapView加载时缩放到注释时出现问题,ios,swift,swift3,mkmapview,Ios,Swift,Swift3,Mkmapview,加载MapView时,无法放大注释/pin 加载地图视图时,我希望它开始缩小,然后朝注释/接点放大。动画设置为true。我不确定这里出了什么问题 地图加载后,会短暂显示带有pin的灰色屏幕,然后加载周围的卫星地图 谢谢 使用Swift 3 地图代码: @IBOutlet weak var mapView: MKMapView! } override func viewDidLoad() { super.viewDidLoad() let

加载MapView时,无法放大注释/pin

加载地图视图时,我希望它开始缩小,然后朝注释/接点放大。动画设置为true。我不确定这里出了什么问题

地图加载后,会短暂显示带有pin的灰色屏幕,然后加载周围的卫星地图

谢谢

使用Swift 3

地图代码:

   @IBOutlet weak var mapView: MKMapView!

   }



   override func viewDidLoad() {
       super.viewDidLoad()


       let distanceSpan:CLLocationDegrees = 300
       let redRocks:CLLocationCoordinate2D = CLLocationCoordinate2DMake(39.665496, -105.205438)
       let redRocksPin = RedRocksPin(title: "Jerry Garcia 1/2/72", subtitle: "Red Rocks Amphitheatre", coordinate: redRocks)
       mapView.addAnnotation(redRocksPin)

       mapView.setRegion(MKCoordinateRegionMakeWithDistance(redRocks, distanceSpan, distanceSpan), animated: true)
Pin等级:

import MapKit

class RedRocksPin: NSObject, MKAnnotation {
var title: String?
var subtitle: String?
var coordinate: CLLocationCoordinate2D

init(title:String, subtitle:String, coordinate: CLLocationCoordinate2D) {
    self.title = title
    self.subtitle = subtitle
    self.coordinate = coordinate
}

在类声明中,将这些变量设置为类变量:

    let distanceSpan:CLLocationDegrees = 300
    let redRocks:CLLocationCoordinate2D = CLLocationCoordinate2DMake(39.665496, -105.205438)
在ViewWillDisplay中,执行以下操作:

    override func viewWillAppear(_ animated: Bool) {
       super.viewWillAppear(animted)
       view.layoutIfNeeded()

       let redRocksPin = RedRocksPin(title: "Jerry Garcia 1/2/72", subtitle: "Red Rocks Amphitheatre", coordinate: redRocks)
       mapView.addAnnotation(redRocksPin)
    }
然后这个:

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        mapView.setRegion(MKCoordinateRegionMakeWithDistance(redRocks, distanceSpan, distanceSpan), animated: true)
    }
因此,这将在视图中显示,它将绘制地图视图,因此您可以添加注释而不会导致崩溃,然后在视图中显示,它将放大您添加的注释


不确定这是否是最好的方法,但可以尝试一下。

谢谢您的回复。要将这些行添加到类声明中,是否会转到IBOutlet所在的位置?还是在加载后?此外,在调用未解析标识符“redRocks”时,为参数1添加两个覆盖缺少的参数时,我也遇到了错误。控制器已导入UIKit和MapKit。谢谢好的,对于超级ViewDidDisplay&ViewWillDisplay,我将更新它们,我忘记添加动画。对于类声明问题,您将它们放在括号之后,放在类名之后。因此,根据您组织代码的方式,IBOutlet位于上方或下方。仍然会出现相同的错误。override func VIEW将出现{和override func VIEWDID显示{are showing方法不会覆盖其超类中的任何方法。super.ViewDidApparAnimated和super.ViewWillApparAnimated显示未解析标识符的动画。ViewWillAnimated上是否有拼写错误将出现在您的代码中?谢谢。迈尔斯,我没有添加代码ally correct;这并不是说您在这种情况下错了,而是在将来尝试手动获取代码并添加它,而不是复制和粘贴,这将防止我们懒惰的开发人员造成的问题:p我编辑了代码以修复您遇到的问题。立即生效!吸取了教训,对此表示抱歉!非常感谢.