【发布时间】:2022-11-13 23:17:18
【问题描述】:
我想实现一个基本的地图视图,当他们点击一个按钮时,它将以用户的位置为中心,类似于 Apple 地图应用程序。我尝试了以下操作,但每当我点击按钮时,[SwiftUI] Modifying state during view update, this will cause undefined behavior. 就会打印在控制台中。在我看来,更新 tracking 状态变量会导致错误。但是,我不确定状态变量还打算如何使用。尽管打印了错误,但该应用程序确实按预期运行。有没有人有这方面的经验或知道可能出了什么问题?
struct ContentView: View {
@State var region: MKCoordinateRegion = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 47.3769, longitude: 8.5417), latitudinalMeters: 2000, longitudinalMeters: 2000)
@State var tracking = MapUserTrackingMode.follow
var body: some View {
ZStack {
Map(coordinateRegion: $region, interactionModes: .all, showsUserLocation: true, userTrackingMode: $tracking)
.ignoresSafeArea()
.task {
let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization();
}
Button {
tracking = .follow
} label: {
Image(systemName: tracking == .follow ? "location.fill" : "location")
.padding()
}
.background(.white)
}
}
}
【问题讨论】:
标签: swiftui runtime-error mapkit