【发布时间】:2021-11-07 01:27:00
【问题描述】:
我需要创建一个局部视图控制器,并希望在 SwiftUI 中完成,但对 SwiftUI 来说还很新,我不确定它是否可能。是否可以在 SwiftUI 中创建类似的东西?其中紫色是视图控制器,背景是另一个视图控制器
【问题讨论】:
标签: ios swift swiftui uiviewcontroller
我需要创建一个局部视图控制器,并希望在 SwiftUI 中完成,但对 SwiftUI 来说还很新,我不确定它是否可能。是否可以在 SwiftUI 中创建类似的东西?其中紫色是视图控制器,背景是另一个视图控制器
【问题讨论】:
标签: ios swift swiftui uiviewcontroller
是的,可以在 SwiftUI 中创建类似的东西,但您通常不会使用 VC。
【讨论】:
在 swiftUI 中,这只是两个视图。 这是一个例子。 您可以通过使用 UIViewControllers 用于顶部和底部视图。 UIViewControllerRepresentable 协议
在此处查看文档:https://developer.apple.com/documentation/swiftui/uiviewcontrollerrepresentable
struct SplitView: View {
struct TopView: View {
var body: some View {
ScrollView(.vertical) {
LazyVGrid(columns:[GridItem(.adaptive(minimum: 100, maximum: 150))] ) {
ForEach(0..<100) { item in
Text("item: \(item)")
}
}
}
}
}
struct BottomView: View {
var body: some View {
ScrollView(.horizontal) {
LazyHGrid(rows: [GridItem(.adaptive(minimum: 50, maximum: 100))] ) {
ForEach(0..<100) { item in
Text("item: \(item)")
}
}.background(Color.purple)
}
}
}
var body: some View {
GeometryReader { proxy in
VStack {
TopView()
.frame(height: proxy.size.height * 2/3)
BottomView()
.frame(height: proxy.size.height * 1/3)
}
}
}
}
【讨论】: