小编Bar*_*oth的帖子

UIViewRepresentable:“在视图更新期间修改状态,这将导致未定义的行为”

我从 MKMapView 制作了一个简单的 UIViewRepresentable。您可以滚动地图视图,屏幕将更新为中间的坐标。

这是内容视图:

import SwiftUI
import CoreLocation

let london = CLLocationCoordinate2D(latitude: 51.50722, longitude: -0.1275)

struct ContentView: View {
    @State private var center = london

    var body: some View {
        VStack {
            MapView(center: self.$center)
            HStack {
                VStack {
                    Text(String(format: "Lat: %.4f", self.center.latitude))
                    Text(String(format: "Long: %.4f", self.center.longitude))
                }
                Spacer()
                Button("Reset") {
                    self.center = london
                }
            }.padding(.horizontal)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是地图视图:

struct MapView: UIViewRepresentable {
    @Binding var center: CLLocationCoordinate2D

    func makeUIView(context: Context) -> MKMapView {
        let mapView = MKMapView()
        mapView.delegate = …
Run Code Online (Sandbox Code Playgroud)

swiftui

9
推荐指数
1
解决办法
4183
查看次数

标签 统计

swiftui ×1