下面是我的代码,其中列出了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)
}
}
答案 0 :(得分:2)
我看到这个问题已经存在了一段时间,但我记得我在创建自定义引脚颜色时遇到了麻烦,所以也许有人可以在将来使用它。 MKPinAnnotationColor已被弃用,因此如果您需要非红色,绿色或紫色的针脚,则需要创建自己的颜色。您可以通过创建MKPinAnnotationView的扩展并定义新颜色来实现。例如,如果你想要一个蓝色的针脚:
extension MKPinAnnotationView {
class func bluePinColor() -> UIColor {
return UIColor.blue
}
}
然后将颜色分配给注释:
MKPinAnnotationView.bluePinColor()
答案 1 :(得分:1)
您需要设置一些对象作为地图的委托,然后实现viewForAnnotation。您可以使用MKPinAnnotationView返回标准引脚注释,或创建自定义视图,如果需要特殊内容,则返回该视图。
应该有大量的教程展示如何做到这一点,因为它简单的地图定制。
谷歌的快速搜索显示了这篇SO帖子:
How to change MKAnnotation Color using Swift?
请注意,该问题的答案使用的是pinColor
,在iOS 10中已弃用。您需要使用MKPinAnnotationColor
代替。