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

