2017-09-09 6 views
-2

誰かがUITextFieldをユーザーの現在のアドレスで塗りつぶす方法を知っていますか?私は任意のフレームワークやAPIに触れることができます。私はちょうど正しい方向にプッシュする必要があります。おそらくチュートリアルです。ありがとう。スウィフトUserLocation UITextField

+1

すでに回答済み:https://stackoverflow.com/questions/25296691/get-users-current-location-coordinates – Martheli

答えて

0

更新ソリューション:

は経度でのユーザーの位置を取得し、あなたのクラス宣言

  • をするCLLocationManagerDelegateを追加するには、クラス
  • import CoreLocationを追加

    1. する必要があります最初の緯度info.plistファイルにNSLocationWhenInUseUsageDescriptionまたはNSLocationAlwaysUsageDescriptionを追加してください。追加ボタンを押して、どちらか一方をコピーして貼り付けるだけです。それはPrivacy - Location When In Use Usage Descriptionに自動的に修正する必要がありますし、右側のボックスに説明を追加することができます。その説明は、アプリがユーザーの場所を使用するように頼んだときにポップアップに表示されます。
    2. 次に、ロケーションマネージャを開始する必要があります。あなたは、あなたはその後、今、あなたは経度と緯度でユーザの位置を持っていることを

      func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
      let locat = manager.location 
      

      }

    を使用してユーザの位置を取得することができます

    let manager = CLLocationManager() 
    manager.delegate = self 
    manager.desiredAccuracy = kCLLocationAccuracyBest 
    manager.requestAlwaysAuthorization() 
    manager.startUpdatingLocation() 
    
  • を使用してこれを行うことができますジオコーディングを使用してアドレスに変換する必要があります。

    1. にあなたが持ってこれを行うには、この機能は、ユーザーに

      geocoder.reverseGeocodeLocation(locat!, completionHandler: { 
          (placemarks, error) in 
          if (error != nil) { 
           //geocoding failed 
          } else { 
           let pm = placemarks! as [CLPlacemark] 
      
           if pm.count > 0 { 
            let pm = placemarks![0] 
            let address = (pm.subThoroughfare + ", " + pm.thoroughfare + ", " + pm.locality + ", " + pm.subLocality + ", " + pm.country + ", " + pm.postalCode) 
            print(address) 
            manager.stopUpdatingLocation() 
           } 
          } 
      }) 
      

    逆ジオコーディング機能を実装し、そのようなlet geocoder: CLGeocoder = CLGeocoder()

  • としてCLGeocoderを作成import AddressBookUI

  • あなたのクラスに追加しますすでにわかっている現在の場所を確認した後、その場所の各ビットを取得し、直ちにコンソールに表示します。その後、ユーザーの場所の更新が停止されます。

    最後に、UIButtonのテキストをアドレスを含むその文字列に変更することができます。

    関連する問題