关于如何替换此调用有什么想法吗?它非常有用,现已在 iOS 17.0 中被弃用。
Map(coordinateRegion: $viewModel.region, showsUserLocation: true)
这是通过以下方式提供的:
enum MapDetails {
static let startingLocation = CLLocationCoordinate2D(latitude: GlobalVariables.latitude, longitude: GlobalVariables.longitude)
static let defaultSpan = MKCoordinateSpan(latitudeDelta: GlobalVariables.span, longitudeDelta: GlobalVariables.span)
}
final class LocationViewModel: NSObject, ObservableObject, CLLocationManagerDelegate {
var locationManager: CLLocationManager?
@Published var region = MKCoordinateRegion(center: MapDetails.startingLocation, span: MapDetails.defaultSpan)
...
黄色警告是:
“init(coordinateRegion:interactionModes:showsUserLocation:userTrackingMode:)”在 iOS 17.0 中已弃用:使用采用 MapContentBuilder 的地图初始值设定项。
是否有我忽略的明显替代品?
init(position:bounds:interactionModes:scope:content:)
初始化程序。这需要 NapCameraPosition
的绑定,因此您应该相应地更改视图模型中的类型。
请注意,您可以使用
MapCameraPosition
从 MKCoordinateRegion
创建
MapCameraPosition.region(_:)
。
UserAnnotation
Map(position: $viewModel.region) {
UserAnnotation()
}