私が達成したいことの基本的な考え方を与えるために、ユーザーの現在地をズームインしてそのズームレベルでユーザーを追跡するマップ。私が持っているview_did_loadでswift - デリゲートメソッドの戻り値を使用して変数を設定する
:その下
let span = MKCoordinateSpanMake(0.075, 0.075)
let region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: currentLat, longitude: currentLong), span: span)
map.setRegion(region, animated: true)
を私は私の場所の管理者のための委任機能を持っている:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) -> (lat: CLLocationDegrees, long: CLLocationDegrees) {
let userLocation:CLLocation = locations[0]
let currentLong = userLocation.coordinate.longitude
let currentLat = userLocation.coordinate.latitude
return (currentLat, currentLong)
}
が設定するには、このデリゲートメソッドからの戻り値を使用することが可能です私の地域変数を宣言する緯度と経度?現在私がこれを試してみると、 "定数" currentLat 'は初期化される前に使用され、 "constant' currentLong 'は初期化される前に使用されます。私のアプローチはソリューションとはまったく異なるかもしれませんが、あなたが提供できる何か助けてくれてありがとう!
ありがとうございました。私はdidUpdateLocations関数を変更してマップ自体を更新しました。しかし、私はこの関数内で私のviewDidLoadから上記のコードを置くとき、それは "メンバー 'マップ'への"あいまいな参照 "と言います。 –
しばらくの間騒がれた後、私は "region"変数の値を変更するためだけに新しい、異なる関数を作成しました。これを達成するためには、「地域」をグローバル変数にしなければなりませんでした。私のコードは、デバイス上でテストするときには動作しますが、シミュレータ上ではテストされません。 –