swift 基本のMapの作り方　

swiftでMapアプリを作ります。

クロージャーとかやっかいなやつ出てきます。

とりあえず行ってみよう！


■storybordにtextFieldとMKmapViewを用意

こんな感じ(textFieldにわかりやすく色付けてます。本間はつけなくて大丈夫！)
![スクリーンショット 2021-02-21 22.32.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/0fee2e3b-a26a-820c-777f-6a045d98e876.png)


■こっからはViewController.swiftに移動

♪始めにimportMapKitを加えます
マップ作りの道具箱用意やでーーー
![スクリーンショット 2021-02-21 22.37.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/5279a1af-35c7-2d6b-02e3-ccb08bc93a49.png)


♪textFieldとMKmapViewをViewController.swiftに紐付けます。
こんな感じ
![スクリーンショット 2021-02-21 22.40.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/8bc642ac-b922-240e-7e3a-e2993214ab33.png)




♪classの UIViewControllerの横にUITextFieldDelegateを書く
とりあえずtextField使う時UITextFieldDelegateを書くんだなーでOK

例えると:UITextFieldDelegateとは
textField(配達員)に書いた情報(荷物)をreturn押した際にどこに運ぶの?
ViewController(配達先)やでってtextField(配達員)に伝える。

じゃあ今はこんな感じ
![スクリーンショット 2021-02-21 22.43.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/8a4ac1a4-bbb7-1463-5a79-a87050da1e4e.png)



♪override func viewDidLoad()にtextField.delegate = selfとかく
self(自分)を使うことによって配達先ここですよー
って言ってます。
![スクリーンショット 2021-02-21 23.01.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/6f3e52af-371b-3aa5-c7e8-09bb33562d4f.png)


■途中経過
今はこんな感じ
![スクリーンショット 2021-02-21 23.05.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/a066463e-18fd-30e3-9419-5d5126f2b99c.png)



♪メソッドを書く
func textFieldShouldReturn(_ textField: UITextField) -> Bool {}
textFieldと書いたら予測で出てくる。
全部覚えなくて大丈夫です！
テキストシュルリターンなんとかぐらいで覚えとけば大丈夫！

return押したら中身が起動

中身に書くもの順番に説明します。


♪キーボードを閉じる呪文
textField.resignFirstResponder()


♪住所を変数にいれてデバックエリアに表示
☆if letとは
if文でもあり変数代入でもありアンラップしている。

//textFieldに文章入ってたらデアバックエリアに文章表示
 if let address = textField.text{
            
            print(address)
}

今はこんな感じ。
![スクリーンショット 2021-02-22 16.17.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/6df63737-d53e-687b-4aec-6778b29d77ac.png)





■次からがちょっと大変!
住所はtextFieldに書いてるのでまあ僕たちは読めます。
でもアプリ君は何言ってんの?
状態です。
なのでアプリ君に住所って言う文字から緯度経度を取得してもらいます！


☆　全てfunc textFieldShouldReturn(_ textField: UITextField) -> Bool {}の中身に書きます。
文字書いてreturn押したら動いてほしいもんね。



♪緯度経度を取得するメソッドとか入っているクラスをインスタンス化
![スクリーンショット 2021-02-22 15.37.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/5dfe71a5-e9d2-b82c-82c0-a7a1994f422e.png)



♪次にクロージャーを使って記述します。
クロージャーとはスコープ内での変数や定数をまとめたもの関数の一種。

ここで出てくるメソッド
.first 配列の始めを取り出すのに使う。
.location 緯度経度高度などを取り出す。
.coordinate 緯度経度のみ取り出す。

![スクリーンショット 2021-02-22 16.03.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/dac8feaa-2363-8e95-a060-429d9d7f6bf1.png)



♪ピンをたてる。(地図にピンをたてる。)
次のクラスをインスタンス化
let pin = MKPointAnnotation()
![スクリーンショット 2021-02-22 16.04.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/08674bd8-9605-f103-63eb-a302902d4d9a.png)


♪ピンを立てるためのメソッドを準備する。
.coordinate      緯度経度を取得する。

.title           ピンにtextFiledに入れた文字を入れる。

.addAnnotation() ピンをたてます呪文

.region    領域　表示する範囲をきめる。　

![スクリーンショット 2021-02-22 16.07.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/8bee1a02-0172-a747-511b-c5cf9e20322a.png)



最後に閉じる。
returen true で返す。
![スクリーンショット 2021-02-22 16.20.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/f196826e-ac3d-45b8-034d-234f829bdd54.png)


全体画像
![スクリーンショット 2021-02-22 16.22.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/9a2ee1a1-3cd3-ff87-3bb5-78602801fc93.png)

![スクリーンショット 2021-02-22 16.23.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/b6ca91c5-7e8b-a576-3428-4067d843b4b7.png)

![スクリーンショット 2021-02-22 16.23.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/98d776b4-d996-6014-c4ab-1bff004bcd09.png)


これでとりあえず動きます。
検索ワードを記述して検索すると表示されます。

![スクリーンショット 2021-02-22 16.26.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/f1bcd0b6-a35d-0dce-e5a3-f494ddab3f5e.png)
![スクリーンショット 2021-02-22 16.26.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1099804/67498428-9adb-2994-1cd1-f27d8a1a23c7.png)


以上になります。

勉強してまだ一週間ほどで初めての投稿になります。
間違った認識や見づらい場面等があるかも知れません。
その点ご了承いただきますようお願い致します。
とりあえず動きます！