在Swift游乐场中使用MapKit显示地图以便快速查看?

时间:2014-06-09 06:32:27

标签: swift mapkit swift-playground

很高兴看到swift-playground的标签 - 很高兴看到这种情况继续下去。

我一直在修补Swift,我想知道MapKit是否可以在游乐场中使用,这样你就可以使用快速查看功能,这样我就可以循环播放我的工作预览。我还没想出语法,所以我想问一下是否有人在游乐场环境中探讨过这个问题。我想我需要一些代码来建立它作为一个视图控制器。

import UIKit
import MapKit

// Sample UIView code which works great in the playground.
//var myView:UIView = UIView();
//myView.frame = CGRectMake(0, 0, 320, 560)
//myView.backgroundColor = UIColor.blueColor()

// Non working map code - no errors but can't figure out what to call or initiate to get the view in the Quick Look side.

var mapView = MKMapView();
mapView.region.center.latitude = mapView.userLocation.coordinate.latitude;
mapView.region.center.longitude = mapView.userLocation.coordinate.longitude;
mapView.region.span.latitudeDelta = 0.00725;
mapView.region.span.longitudeDelta = 0.00725;

猜测我只是缺少一些简单的mapView来自己初始化等等。我喜欢解释的游乐场区域进行修补,只需要弄清楚它是否可以做mao功能而不仅仅是写.swift文件和环境Xcode并变得越来越正式。

3 个答案:

答案 0 :(得分:8)

对于OS X上的XCode7.1和Swift2.1,我打开了时间轴并执行了以下操作:

import MapKit
import XCPlayground

let delta = 5.0
let frame = CGRect( x:0, y:0, width:200, height:200 )
let mapView = MKMapView( frame: frame )
var region = MKCoordinateRegion()
region.center.latitude = 31.0
region.center.longitude = -110.0
region.span.latitudeDelta = delta
region.span.longitudeDelta = delta
mapView.setRegion( region, animated: true )

XCPlaygroundPage.currentPage.liveView = mapView
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

Xcode 9.x,Swift 4.1更新:

导入PlaygroundSupport 导入MapKit

let delta = 5.0
let frame = CGRect( x:0, y:0, width:200, height:200 )
let mapView = MKMapView( frame: frame )
var region = MKCoordinateRegion()
region.center.latitude = 31.0
region.center.longitude = -110.0
region.span.latitudeDelta = delta
region.span.longitudeDelta = delta
mapView.setRegion( region, animated: true )

PlaygroundPage.current.liveView = mapView
PlaygroundPage.current.needsIndefiniteExecution = true

答案 1 :(得分:2)

试试这个:

import UIKit
import MapKit
import XCPlayground // Required for XCPShowView

let frame = CGRect(x: 0, y: 0, width: 150, height: 150)
let mapView = MKMapView(frame: frame)
mapView.region.center.latitude = 37.3347606
mapView.region.center.longitude = -122.0548883
mapView.region.span.latitudeDelta = 0.00725
mapView.region.span.longitudeDelta = 0.00725

XCPShowView("mapview", mapView)

答案 2 :(得分:2)

我在Swift Playground App中尝试这个,我只做了一些修改并添加了一行代码。我的swift playground应用程序正在使用Swift 3.1。我希望我可以上传一个视频,在这个mapview中我可以放大和缩小加上我可以在地图中移动。 https://i.stack.imgur.com/XVqPg.jpg

import UIKit
import PlaygroundSupport
import MapKit 


var myView:UIView = UIView()
myView.frame = CGRect(origin: CGPoint (), size: CGSize(width: 320, height: 568))


var mapView = MKMapView();
mapView.region.center.latitude = 
mapView.userLocation.coordinate.latitude
mapView.region.center.longitude = 
mapView.userLocation.coordinate.longitude
mapView.region.span.latitudeDelta = 0.00725
mapView.region.span.longitudeDelta = 0.00725

myview.addSubview(mapView)


PlaygroundPage.current.liveView = mapView
PlaygroundPage.current.needsIndefiniteExecution = true