我正在使用SwiftUI显示地图,如果用户点击了注释,它将在VStack中弹出详细视图。我已经制作了地图视图,并在另一个SwiftUI文件中插入了注释。我还做了详细视图。
如何在主视图文件中访问该地图的注释,以定义一个.tapaction,以便他们将其用于详细视图?
我尝试将视图定义为MKMapView,但无法在另一个SwiftUI视图中为UIViewRepresentable做到这一点。
主视图(ContentView)代码为:
struct ContentView: View {
@State private var chosen = false
var body: some View {
VStack {
MapView()
.edgesIgnoringSafeArea(.top)
.frame(height: chosen ? 600:nil)
.tapAction {
withAnimation{ self.chosen.toggle()}
}
if chosen {
ExtractedView()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
MapView代码为:
struct MapView : UIViewRepresentable {
@State private var userLocationIsEnabled = false
var locationManager = CLLocationManager()
func makeUIView(context: Context) -> MKMapView {
MKMapView(frame: .zero)
}
func updateUIView(_ view: MKMapView, context: Context) {
view.showsUserLocation = true
.
.
.
let sampleCoordinates …Run Code Online (Sandbox Code Playgroud) 我试图在SwiftUI应用程序中添加三成分选择器(UIPickerView)(在传统的UIKit应用程序中,数据源3将从该numberOfComponents方法返回),但是我在任何地方都找不到此示例。
我曾尝试添加一个由三个单一组件选择器组成的HStack,但是如果它们全部都属于一个选择器,则其透视图将与之不同。