【问题标题】:Creating Partial ViewControllers in SwiftUI在 SwiftUI 中创建局部视图控制器
【发布时间】:2021-11-07 01:27:00
【问题描述】:

我需要创建一个局部视图控制器,并希望在 SwiftUI 中完成,但对 SwiftUI 来说还很新,我不确定它是否可能。是否可以在 SwiftUI 中创建类似的东西?其中紫色是视图控制器,背景是另一个视图控制器

【问题讨论】:

    标签: ios swift swiftui uiviewcontroller


    【解决方案1】:

    是的,可以在 SwiftUI 中创建类似的东西,但您通常不会使用 VC。

    【讨论】:

    • 我想一个视图就足够了,但不知道我会如何让它可以滑动关闭。用 UIKit 完成了 100 次,但这个 SwiftUI 让我很生气
    【解决方案2】:

    在 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)
            }
        }
    }
    }
    

    【讨论】:

    • 我需要它在按钮点击时以该尺寸呈现,并在按钮点击时隐藏,还具有向下滑动功能
    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多