簡體   English   中英

如何使用MapKit在Swift 3中更改圖釘顏色

[英]how to change a pin color in swift 3 using MapKit

下面是我的代碼,其中列出了1個注釋引腳。 現在它是紅色的。 如何使它變藍? 我需要放入擴展文件嗎? 該代碼還包括當前用戶位置。 我也可以將注釋設為按鈕嗎?

import UIKit
import MapKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

@IBOutlet var map: MKMapView!

let manager = CLLocationManager()


func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    let location = locations[0]
    let span: MKCoordinateSpan = MKCoordinateSpanMake(1.0, 1.0)
    let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude)
    let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)

    map.setRegion(region, animated: true)

    print(location.altitude)
    print(location.speed)

    self.map.showsUserLocation = true

}




override func viewDidLoad() {
    super.viewDidLoad()

    manager.delegate = self
    manager.desiredAccuracy = kCLLocationAccuracyBest
    manager.requestWhenInUseAuthorization()
    manager.startUpdatingLocation()

    let location:CLLocationCoordinate2D = CLLocationCoordinate2DMake(37.5656, -122.443)
    let annoation = MKPointAnnotation()

           annoation.coordinate = location
    annoation.title = "MYSHOP"
    annoation.subtitle = "Come Visit"
    map.addAnnotation(annoation)

}


}

我看到這個問題已有一段時間了,但是我記得我在創建自定義圖釘顏色時遇到了麻煩,因此將來有人可以使用它。 MKPinAnnotationColor已被棄用,因此如果您想要的針腳不是紅色,綠色或紫色,則需要創建自己的顏色。 為此,您可以創建MKPinAnnotationView的擴展並定義新的顏色。 例如,如果您想要一個藍色別針:

 extension MKPinAnnotationView {
     class func bluePinColor() -> UIColor {
         return UIColor.blue
     }
 }

然后將顏色分配給您的注釋:

 MKPinAnnotationView.bluePinColor()

您需要設置一些對象作為地圖的委托,然后實現viewForAnnotation。 您可以使用MKPinAnnotationView返回標准的引腳注釋,或者創建自定義視圖並在需要特殊功能時返回該視圖。

由於這是非常簡單的地圖自定義,因此應該有很多教程來展示如何執行此操作。

快速的Google搜索顯示了該帖子:

如何使用Swift更改MKAnnotation顏色?

請注意,該問題的答案使用了iOS 10中已棄用的pinColor ,您需要改為使用MKPinAnnotationColor

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM