MapKitでの起動と実行
デフォルトのマップビューは、箱から出して素晴らしい作品–あなたはというように、ズームインとズームアウト、および周りにパンすることができます。 あなたが疑問に思っていた場合は、仮想”ピンチ”ジェスチャーをトリガするオプションを押したままにする必要があります–ちょうどあなたが一本の指
アシスタントエディタを使用して、mapView
というマップビューのアウトレットを作成してください。 また、マップビューからCtrlキーを押しながらレイアウト領域のすぐ上のオレンジ色と白のview controllerボタンにドラッグして、view controllerをマップビューのデリゲートに設定 また、ViewControllerにimport MapKit
を追加する必要があります。swiftなので、MKMapView
が何であるかを理解しています。
注:マップのデリゲートを設定しないと、このプロジェクトの残りの部分はあまりうまく機能しません。
これで、マップにいくつかの注釈を追加します。 注釈は、タイトル、サブタイトル、および位置を含むオブジェクトです。 最初の2つは両方とも文字列で、3つ目はCLLocationCoordinate2D
と呼ばれる新しいデータ型で、注釈を配置する場所の緯度と経度を保持する構造体です。
マップ注釈は、クラスとしてではなく、プロトコルとして記述されています。 これまでのところ、プロトコルはすべてメソッドに関するものだったので、これはあなたが前に見たことがないものです。 しかし、マップ注釈を作成するために採用する必要があるMKAnnotation
プロトコルに準拠したい場合は、注釈に座標を持たなければならないと述べています。 それがどこにあるのかわからなければ、地図上に注釈を持つことに意味がないので、それは理にかなっています。 タイトルとサブタイトルはオプションですが、とにかくそれらを提供します。
新しいファイルを作成し、iOS>Source>Cocoa Touch Classを選択します。 それをNSObject
のサブクラスにし、”Capital”という名前を付けます。 Map annotationsでは、構造体を使用することはできず、AppleのObjective-Cコードと対話的である必要があるため、NSObject
から継承する必要があります。
資本金の内容を変更します。これへの迅速な:
3つのプロパティと、与えられたデータをコピーするだけの基本的な初期化子があります。 ここでも、渡されるパラメータはプロパティと同じ名前であるため、ここでself.
を使用する必要があります。 ファイルにimport MapKit
を追加しました。MKAnnotation
とCLLocationCoordinate2D
が定義されているためです。
このカスタムサブクラスを使用すると、名前、座標、情報を渡すことで首都を作成できます。info
プロパティを使用して、各都市に関する情報ナゲットを保持します(読み:オフ–ザ-カフ、私は地理学で吸い込まれました)。 あなたはより良いことを歓迎しています!
これらの行をViewControllerのviewDidLoad()
メソッドに入れます。swift:
これらのCapital
オブジェクトはMKAnnotation
プロトコルに準拠しているため、addAnnotation()
メソッドを使用して表示するためにマップビューに送信できます。 の終わりの直前にこれを置くviewDidLoad()
:
または、addAnnotations()
メソッドを使用して複数の注釈を一度に追加することもできます。 これを使用すると、これらの5行をこれに置き換えます:
mapView.addAnnotations()
これにより、注釈から配列が作成され、マップビューに一括して送信されます。
今すぐプログラムを実行すると、各都市の地図上にピンが表示され、それらのいずれかをタップして都市名を表示できます。 しかし、info
プロパティはどこですか? より多くの情報を表示するには、注釈を表示するために使用するビューをカスタマイズする必要があります。
スポンサーあなたのSwiftアプリをデバッグする時間を無駄にするのに疲れていますか? InstabugのSDKは、すべてのバグレポートで完全なデバイスの詳細、ネットワークログ、および再現手順を提供することにより、デバッグ時間を最小限に抑える すべてのデータは自動的に添付されます。 セットアップにはコード行のみが必要です。 今すぐ無料トライアルを開始し、品質のアプリを出荷!
無料で試してみてください
Swiftでハッキングをスポンサーし、世界最大のSwiftコミュニティに到達!