使用 SwiftUI 将单个引脚添加到 Mapkit

Posted

技术标签:

【中文标题】使用 SwiftUI 将单个引脚添加到 Mapkit【英文标题】:Add single pin to Mapkit with SwiftUI 【发布时间】:2019-09-16 17:16:53 【问题描述】:

如何使用 Xcode 11 GM / SwiftUI 在我的地图上添加一个简单的图钉。

我的代码如下(这里显示了以坐标为中心的地图)但我只想显示其他坐标的一个图钉。

import SwiftUI
import MapKit

struct ContentView: UIViewRepresentable 
    func makeUIView(context: Context) -> MKMapView 
        MKMapView(frame: .zero)
    

    func updateUIView(_ view: MKMapView, context: Context) 
        let coordinate = CLLocationCoordinate2D(
            latitude: 34.011_286, longitude: -116.166_868)
        let span = MKCoordinateSpan(latitudeDelta: 2.0, longitudeDelta: 2.0)
        let region = MKCoordinateRegion(center: coordinate, span: span)
        view.setRegion(region, animated: true)



    


struct ContentView_Previews: PreviewProvider 
    static var previews: some View 
        ContentView()
    

如果有任何建议,我将不胜感激,谢谢。

【问题讨论】:

【参考方案1】:

更新您的代码:

struct ContentView: UIViewRepresentable 


    func makeUIView(context: Context) -> MKMapView 
        MKMapView(frame: .zero)
    

    func updateUIView(_ view: MKMapView, context: Context) 


        // 1 
        view.mapType = MKMapType.standard // (satellite)

        // 2
        let mylocation = CLLocationCoordinate2D(latitude: -6.863190,longitude: -79.818250)

        // 3
        let coordinate = CLLocationCoordinate2D(
            latitude: -6.864138, longitude: -79.819634)
        let span = MKCoordinateSpan(latitudeDelta: 0.005, longitudeDelta: 0.005)
        let region = MKCoordinateRegion(center: coordinate, span: span)
        view.setRegion(region, animated: true)

        // 4
        let annotation = MKPointAnnotation()
        annotation.coordinate = mylocation

        annotation.title = "My Location"
        annotation.subtitle = "Visit us soon"
        view.addAnnotation(annotation)






    

【讨论】:

以上是关于使用 SwiftUI 将单个引脚添加到 Mapkit的主要内容,如果未能解决你的问题,请参考以下文章

单个 Slider 的 Swiftui 多重绑定

我可以在 SwiftUI 的单个列表部分中放置多个文本行吗?

如何使用 SwiftUI 将上下文菜单添加到 NavigationLink?

SwiftUI:将项目动态添加到 TabView [重复]

如何将字典项分别添加到 SwiftUI 列表中

将 WKInterfaceTimer 添加到 SwiftUI