<p id="qitwt"></p>
      1. <object id="qitwt"><strong id="qitwt"></strong></object>
        <p id="qitwt"></p>
        <li id="qitwt"></li>
        <p id="qitwt"><del id="qitwt"><xmp id="qitwt"></xmp></del></p>
        <p id="qitwt"><label id="qitwt"></label></p>
      2. <acronym id="qitwt"></acronym>
        <p id="qitwt"></p>
        免費開源的iOS開發學習平臺

        MapKit框架:3-簡易地圖標注

        當我們在地圖上搜索某個地址時,搜索結果會以一個“大頭針”的樣式插在地圖上,這些“大頭針”就是地圖上的標注?!按箢^針”不僅可以顯示某個地址在地圖中的位置,同時還可以顯示該地址的一些附加信息,例如,在外賣應用中,可以標注商家的名稱以及聯系方式等。

        MKAnnotaiton協議

        在地圖上展示的標注,都必須遵守MKAnnotaiton協議。在該協議中,可以獲取地圖標注的屬性。

        • 獲取標注的經緯度信息。
        @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
        
        • 獲取標注的標題信息
        @property (nonatomic, readonly, copy, nullable) NSString *title;
        @property (nonatomic, readonly, copy, nullable) NSString *subtitle;
        

        MKPointAnnotation類

        MKPointAnnotation類是在MapKit框架中系統定義的標注類,該類繼承自MKShape類,由于MKShape類遵守MKAnnotaiton協議,因此,作為MKShape類的子類,MKPointAnnotation類也遵守MKAnnotaiton協議。MKPointAnnotation類的標注樣式是由系統提供的,即一個紅頭的大頭針樣式的標注,也是我們最常見的樣式。創建MKPointAnnotation對象后,我們需要給其設置經緯度信息(coordinate)。

        @interface MKPointAnnotation : MKShape
        @property (nonatomic, assign) CLLocationCoordinate2D coordinate;
        @end
        

        而MKShape類中,提供了可以設置地圖標注標題的屬性。

        @interface MKShape : NSObject <MKAnnotation>
        @property (nonatomic, copy, nullable) NSString *title;
        @property (nonatomic, copy, nullable) NSString *subtitle;
        @end
        

        結合前面的介紹,有如下兩種方式可以創建地圖標注對象:

        1. 創建MKPointAnnotation類的對象,其父類遵守了MKAnnotaiton協議;
        2. 創建一個自定義類,設置該類遵守MKAnnotaiton協議。

        標注的添加與刪除操作

        在MKMapView類中,不僅可以展示地圖信息,同樣提供了用于在地圖上設置標注的方法,常用的包括添加標注以及移除標注等。添加的標注對象都需要遵守MKAnnotaiton協議。

        • 添加一個標注。
        - (void)addAnnotation:(id <MKAnnotation>)annotation;
        
        • 添加多個標注。
        - (void)addAnnotations:(NSArray<id<MKAnnotation>> *)annotations;
        
        • 移除一個標注。
        - (void)removeAnnotation:(id <MKAnnotation>)annotation;
        
        • 移除多個標注。
        - (void)removeAnnotations:(NSArray<id<MKAnnotation>> *)annotations;
        

        青青草国产成人久久_jizzjizz日本护士高清_亚洲 另类 国产 另类_99久久免费精品色老
        <p id="qitwt"></p>
          1. <object id="qitwt"><strong id="qitwt"></strong></object>
            <p id="qitwt"></p>
            <li id="qitwt"></li>
            <p id="qitwt"><del id="qitwt"><xmp id="qitwt"></xmp></del></p>
            <p id="qitwt"><label id="qitwt"></label></p>
          2. <acronym id="qitwt"></acronym>
            <p id="qitwt"></p>