首页 > 解决方案 > MapAnnotation 按钮操作不起作用(SwiftUI 2.0 地图)

问题描述

我只是想触摸地图注释,但按钮的操作不起作用。我试图弄清楚如何解决它,但到目前为止还没有。我想在不制作 UIKit 桥的情况下使用地图。

这是我的地图:

Map(coordinateRegion: $locationManager.currentLocation,
    interactionModes: .all,
    showsUserLocation: true,
    userTrackingMode: $trackingMode,
    annotationItems: $locationManager.annotations.wrappedValue) { location in
        MapAnnotation(coordinate: location.coordinate, anchorPoint: CGPoint(x: 0.5, y: 0.5)) {
            MapAnnotationView(name: location.title, image: Image("dog"))
        }
    }

这是我的 MapAnnotationView:

import SwiftUI

struct MapAnnotationView: View {
    var name: String
    var image: Image
    @State var size: CGFloat = 20

    var body: some View {
        VStack {
            Button(action: {
                size = $size.wrappedValue == 20 ? 60 : 20
                print("TAPPED =====>")
            }, label: {
                image
                    .resizable(capInsets: EdgeInsets(), resizingMode: .stretch)
                    .frame(width: $size.wrappedValue, height: $size.wrappedValue, alignment: .center)
                    .clipShape(Circle())
                    .overlay(Circle().stroke(Color.white, lineWidth: 2))
                Text(name)
                    .font(.caption)
                    .fontWeight(.semibold)
                    .foregroundColor(.primary)
            })

        }
        .shadow(radius: 5)
    }
}

标签: swiftmapkitswiftui

解决方案


推荐阅读