2014-06-09 13 views
23

Buono a vedere un tag per il campo da giuoco veloce - l'amore per vedere questo continua.Visualizzazione di una mappa con MapKit in un parco giochi Swift per un look rapido?

Ho lavorato su Swift e mi chiedo se il MapKit può essere utilizzato nel parco giochi in modo da poter utilizzare la funzione Quick Look in modo da poter scorrere e giocare con un'anteprima del mio lavoro. Non ho capito la sintassi, quindi ho pensato di chiedere se qualcuno l'ha esplorato in un ambiente di gioco. Sto pensando di aver bisogno di un codice per stabilirlo come controller di visualizzazione.

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; 

Indovinare sto solo perdendo qualcosa di semplice per il MapView a init sé ecc Amo l'area giochi interpretato per armeggiare intorno, solo bisogno di capire se si può fare funzionalità mao invece di scrivere solo .swift file e ambiente all'interno di Xcode e diventando più formale.

+0

http://stackoverflow.com/questions/24108093/how-to-reference-swift-playground-itself?lq=1 suggerisce che un parco giochi non sono interattivi. –

+0

Forse questo tutorial ti aiuterà a capire il tuo problema: http://www.appshocker.com/swift-programming-ios-101-part-4-mapkit-app-displaying-locations/ –

+0

in realtà ha mostrato errori nel errore console quando aggiungi una linea con solo mapView ma non posso google soluzione per loro. e ho anche provato XCPShowView ("Mappa", mapView) senza fortuna – ReDetection

risposta

2

Prova questa:

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) 
+0

ma i riquadri della mappa non vengono mai caricati – ReDetection

+0

Ha caricato la mappa per me una volta, ma ora dopo aver atteso per un po 'ottengo 'GEOResourceManifestServerRemoteProxy: Connessione persa a geod (Connessione non valida)' e 'Connessione persa troppe volte consecutivamente. Proverò di nuovo tra 30 secondi ... (com.apple.geod.plist è corretto?) '. Questo _potere_ essere un bug in Playground. – Mustafa

+0

In Xcode 6.2 questo blocca solo il mio parco giochi e a volte dà un messaggio di errore che dice che ho bisogno di riavviare il parco giochi quando Xcode ha perso la connessione. – holroy

7

Per XCode7.1 e Swift2.1 su OS X, ho aperto la timeline e ha fatto la seguente:

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 
+0

Questo sembra * quasi * funzionare, ottengo la mappa, la griglia e si ingrandisce in un punto, ma poi carica solo un quadratino marrone chiaro (come se fossi in un deserto). Cambiare il tipo di mappa su Satellite o Hybrid non cambia nulla. – Nilloc

+1

@Nilloc Sono riuscito a farlo funzionare aggiungendo la riga 'XCPlaygroundPage.currentPage.needsIndefiniteExecution = true' dopo aver impostato la proprietà' liveView'. – Ziewvater

+0

@Ziewvater grazie per la modifica! Mi chiedo perché ha funzionato bene per me un po 'di tempo fa – cjohnson318

1

provo questo a Swift Playground App, Ho solo alcune modifiche e aggiungo una riga del tuo codice. La mia app per giochi rapidi usa Swift 3.1. Vorrei poter caricare un video, in questo mapview posso ingrandire e ridurre e posso spostarmi sulla mappa. 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 
Problemi correlati