2017-07-17 106 views
0

我试图在地图上放置一个注释(pin),并且模拟器上没有显示引脚(没有放置引脚)。我在代码中没有收到任何错误。以下是我的viewDidLoad。注释未放置在地图上

import UIKit 
import MapKit 

class MapViewController: UIViewController { 

    var itemStore: ItemStore! 
    var mapView: MKMapView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     mapView = MKMapView() 

     let annotation = MKPointAnnotation() 
     annotation.coordinate = CLLocationCoordinate2D(latitude: 40.71304, longitude: -74.0072) 
     annotation.title = "Test" 
     mapView.addAnnotation(annotation) 
    } 
+1

尝试删除: mapView = MKMapView() 并检查mapView是否连接到Storyboard中的控制器 – Babac

回答

0

删除mapView = MKMapView()。 此行创建一个新的MKMapView实例,而您要执行的操作是使用您在Storyboard上创建的实例。如果您不使用Storyboard,则应该使用MKMapView的另一个初始值设定程序来设置其大小。

0

从故事板创建出口到视图控制器。另外我可能会添加MKMapViewDelegate到你的视图控制器。

import UIKit 
import MapKit 

class MapViewController: UIViewController, MKMapViewDelegate { 

var itemStore: ItemStore! 
@IBOutlet var mapView: MKMapView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let annotation = MKPointAnnotation() 
    annotation.coordinate = CLLocationCoordinate2D(latitude: 40.71304, longitude: -74.0072) 
    annotation.title = "Test" 
    self.mapView.addAnnotation(annotation) 
} 
0

初始化新的MKMapView导致新实例。这意味着什么都没有。这就是为什么注释可能不会被放置。尝试删除初始化并尝试连接到IBOutlet如果有。否则,初始化MKMapview完全编程,为它定义frame