2016-05-21 7 views
0

Ich habe in der letzten Woche Xcode (swift 1.2) gelernt, ich habe gerade angefangen, in das Map Kit zu schauen, und ich habe eine Mauer getroffen.Die Karte konnte nicht angezeigt werden

Ich verfolge dieses Tutorial: MapKit Location

ich die MapKit meiner Ansicht hinzugefügt haben, und fügte den folgenden Code in die Steuerung:

@IBOutlet weak var mapView: MKMapView! 

let regionRadius: CLLocationDistance = 1000 

@IBOutlet var menuButton: UIBarButtonItem! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let initialLocation = CLLocation(latitude: 21.282778, longitude: -157.829444) 

    centerMapOnLocation(initialLocation) 

    // Do any additional setup after loading the view. 
} 

func centerMapOnLocation(location: CLLocation) { 
    let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, regionRadius * 2.0, regionRadius * 2.0) 
    mapView.setRegion(coordinateRegion, animated: false) 
} 

Doch wenn ich die app laufen, ich siehe folgendes Bild:

Kann jemand Schuppen bitte etwas Licht in warum ich nicht in der Lage, den Rechtsakt zu sehen Ual Map anstelle der Kacheln?

aktualisieren

-Code unten afer Feedback von ansers:

@IBOutlet weak var mapView: MKMapView! 

@IBOutlet var menuButton: UIBarButtonItem! 

var locationManage = CLLocationManager() 

var locateCoordinate = CLLocationCoordinate2D() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let initialLocation = CLLocation(latitude: 21.282778, longitude: -157.829444) 

    centerMapOnLocation(initialLocation) 





} 

func centerMapOnLocation(location: CLLocation) { 
    var coordin: CLLocationCoordinate2D = location.coordinate 

    var viewRegion: MKCoordinateRegion = MKCoordinateRegionMakeWithDistance(coordin, 500, 500) 
    var adjustedRegion: MKCoordinateRegion = self.mapView.regionThatFits(viewRegion) 
    self.mapView.setRegion(adjustedRegion, animated: true) 
} 
+0

in dem Gerät sind Sie diese –

Antwort

0

Stellen Sie die Delegierten und Delegatmethoden, Verwenden Sie dieses Beispiel-Code,

import UIKit 
import MapKit 

class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate,UITableViewDelegate,UITableViewDataSource { 

    @IBOutlet weak var mapViewOwn: MKMapView! 

    var locationManage = CLLocationManager() 

    var locateCoordinate = CLLocationCoordinate2D() 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib.. 

    mapViewOwn.delegate = self 
    locationManage.delegate = self 

    if CLLocationManager.authorizationStatus() == .NotDetermined { 
     self.locationManage.requestWhenInUseAuthorization() 
    } 

    mapViewOwn.showsUserLocation = true 

    mapViewOwn.mapType = MKMapType.Standard 
    mapViewOwn.zoomEnabled = true 
    mapViewOwn.scrollEnabled = true 

    locationManage.distanceFilter = kCLDistanceFilterNone 
    locationManage.desiredAccuracy = kCLLocationAccuracyBest 

    } 

// Delegatmethoden:

func mapView(mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) { 

    } 

    func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) { 
    let region : MKCoordinateRegion = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 1000, 1000) 
    mapViewOwn.setRegion(mapViewOwn.regionThatFits(region), animated: true) 
    } 

    func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) {   
     //code here 
    } 

    func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 
     //code here 
    } 
+0

getestet immer noch das gleiche Ergebnis erhalten. –

+0

Wenn Sie Storyboard verwenden? –

+0

Nicht sicher, was du meinst? –

1

Einige Problem Ideen:

  • überprüfen, dass Ihr IBOutlet
  • Kontrolle verbunden ist, wenn Ihre Simulator Netzwerkverbindung
  • die Änderung in viewDidAppear machen zu bekommen visuelles Feedback
  • Versuch auf tatsächliches Gerät hat
  • versuchen Sie einen anderen Standort, einen größeren Radius
  • Überprüfen Sie, ob Sie die Koordinaten oder die Zoomstufe nicht erneut ändern wenn der Inhalt nach viewDidLoad
  • versuchen auf der Karte ändert sich, um zu sehen Verkleinern und Verschieben