问题描述
我想在SwiftUI中创建一个MapView来获取标记列表并显示它们。但我也希望用户能够单击/点击它们。如果他们被窃听,则应该翻转布尔值将其标记为完成。
struct Marker: Identifiable {
let id = UUID()
var coordinate : CLLocationCoordinate2D
var done : Bool
}
let markers = [
Marker(coordinate: CLLocationCoordinate2D(latitude: 51.882975,longitude: 10.558585),done: true),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.883329,longitude: 10.559225),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.883296,longitude: 10.558216),done: false),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.882614,longitude: 10.559574),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.882425,longitude: 10.559263),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.882607,longitude: 10.557679),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.883246,longitude: 10.557652),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.883753,longitude: 10.557711),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.884018,longitude: 10.558710),Marker(coordinate: CLLocationCoordinate2D(latitude: 51.881783,longitude: 10.559713),]
问题是当我点击标记时什么也没有发生。我尝试在.onTapGesture { }
这是我的地图的代码:
Map(coordinateRegion: $region,annotationItems: markers) { marker in
MapAnnotation(coordinate: marker.coordinate) {
Circle()
.onTapGesture {
// do something
}
}
}
$region
是这个:
@State private var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 51.882879,longitude: 10.558918),span: MKCoordinateSpan(
latitudeDelta: 0.01,longitudeDelta: 0.01
)
)
这是标记在模拟器中的外观(我也尝试过将它们放大,因此无法通过点击不击中它们)
希望有人可以提供帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)