iPhoneアプリ開発していきます。
今回作るアプリは、「地図検索アプリ」です。
地図検索アプリの完成図
動画
[iPhoneアプリ開発]地図検索アプリ
地図検索アプリで使用するUI部品
地図検索アプリで使用するUI部品は、2つあります。
MKMapView
地図を表示させるUIパーツです。
TextField
テキストを入力する欄を表示するUIパーツです。
入力した文字列を取得できます。
ソースコード全体
import UIKit import MapKit //UITextFieldDelegateを追加することにより、TextField機能を使うことを宣言する。 class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var inputText: UITextField! @IBOutlet weak var dispMap: MKMapView! var pinlist = Array<MKPointAnnotation>() //viewDidLoad()は初めて画面が表示されるタイミングで実行されるメソッドです。 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. inputText.delegate = self } func textFieldShouldReturn(_ textField: UITextField) -> Bool { if pinlist.count > 0{ let lastpin = pinlist.removeLast() dispMap.removeAnnotation(lastpin) } textField.resignFirstResponder() //入力された値をsearchKeywordに格納する let searchKeyword = textField.text print(searchKeyword) //CLGeocoderインスタンスを生成 let geocoder = CLGeocoder() /*CLGeocoderクラスを使うと、緯度経度から住所を算出することができる。また、逆もできる。*/ geocoder.geocodeAddressString(searchKeyword!, completionHandler: {(placemarks:[CLPlacemark]?, error:Error?) in if let placemark = placemarks?[0]{ if let targetCoordinate = placemark.location?.coordinate{ print(targetCoordinate) let pin = MKPointAnnotation() pin.coordinate = targetCoordinate pin.title = searchKeyword self.pinlist.append(pin) self.dispMap.addAnnotation(pin) //self.dispMap.region = MKCoordinateRegionMakeWithDistance(targetCoordinate, 500.0, 500.0) let span = MKCoordinateSpan(latitudeDelta: 0.02, longitudeDelta: 0.02) let theRegion = MKCoordinateRegion(center: targetCoordinate, span: span) self.dispMap.setRegion(theRegion, animated: true) } } }) return true } }
おすすめ教材
- 【6日で速習】iOS 11 Swift 4アプリ開発入門決定版 20個のアプリを作る(ARKit,CoreML,NFC)
- 【iOS12対応】未経験者が有名アプリ開発者になるiOS 12の全て 20個以上アプリをつくりプロになる
- iOS 11 & Swift 4 – The Complete iOS App Development Bootcamp
iPhoneアプリ作成&Swift本
0