2016-02-27 84 views
0

我在UIView裏面創建這個映射。這可能嗎?如果是這樣,你能告訴我如何將這段代碼從UIViewController中帶到UIView。我試圖把MapBox地圖到一個UIView並沒有關於如何將其導入到一個UIViewController指令只有從UIViewController到UIView的代碼

如何將這段代碼看起來像是一個UIView類:

import Mapbox 

class mapboxMap: UIViewController, MGLMapViewDelegate { 

var mapView: MGLMapView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    mapView = MGLMapView(frame: view.bounds) 
    mapView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] 

    // set the map's center coordinate 
    mapView.setCenterCoordinate(CLLocationCoordinate2D(latitude: 40.7326808, 
     longitude: -73.9843407), 
     zoomLevel: 10, animated: false) 
    view.addSubview(mapView) 

    // Set the delegate property of our map view to self after instantiating it. 
    mapView.delegate = self 

    // Declare the marker `hello` and set its coordinates, title, and subtitle 
    let hello = MGLPointAnnotation() 
    hello.coordinate = CLLocationCoordinate2D(latitude: 40.7326808, longitude: -73.9843407) 
    hello.title = "Hello world!" 
    hello.subtitle = "Welcome to my marker" 
    mapView.addAnnotation(hello) 

    let hello2 = MGLPointAnnotation() 
    hello2.coordinate = CLLocationCoordinate2D(latitude: 40.7526808, longitude: -73.9843407) 
    hello2.title = "Hello world!" 
    hello2.subtitle = "Welcome to my marker" 
    mapView.addAnnotation(hello2) 


} 

// Use the default marker; see our custom marker example for more information 
func mapView(mapView: MGLMapView, imageForAnnotation annotation: MGLAnnotation) -> MGLAnnotationImage? { 
    return nil 
} 

func mapView(mapView: MGLMapView, annotationCanShowCallout annotation: MGLAnnotation) -> Bool { 
    return true 
} 

override func viewDidAppear(animated: Bool) { 
    // Wait a bit before setting a new camera. 

    // Create a camera that rotates around the same center point, back to 0°. 
    // `fromDistance:` is meters above mean sea level that an eye would have to be in order to see what the map view is showing. 
    let camera = MGLMapCamera(lookingAtCenterCoordinate: mapView.centerCoordinate, fromDistance: 9000, pitch: 45, heading: 0) 

    // Animate the camera movement over 5 seconds. 
    mapView.setCamera(camera, withDuration: 2.5, animationTimingFunction: CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)) 
} 

}

回答