SwiftUI 6.0(iOS 18)将 Sections 也考虑进自定义容器子视图布局(下)

在这里插入图片描述

概述

在 WWDC 24 新推出的 SwiftUI 6.0 中,苹果对于容器内部子视图的布局有了更深入的支持。为了能够未雨绸缪满足实际 App 中所有可能的情况,我们还可以再接再厉,将 Sections 的支持也考虑进去。

在这里插入图片描述

SwiftUI 6.0 对容器子视图布局的增强支持可以认为是一个小巧的容器自定义布局(Custome Layout)简化器。

有了全新容器子视图布局机制的加持,现在对于任何需要适配自定义容器行为的情况我们都可以游刃有余、从容应对了!

那还等什么呢?Let‘s go!!!


5. 再进一步:支持段(Sections)的容器子视图布局

5.1 更小的容器组织单位:Section

在实际 App 布局的“摆放”中,我们往往会进一步用段(Sections)来划分容器中的海量内容,这在 List 或 Form 等 SwiftUI 内置容器里是司空见惯的事情:

struct ContentView: View {
   
    
    
    var body: some View {
   
    
    
        Form {
   
    
    
            Section("概述") {
   
    
    
                Color.yellow
                    .frame(height: 100)
                Text("Hello World")
            }
            
            Section("高级") {
   
    
    
                Color.red
                    .frame(height: 100)
                Toggle("成为黑悟空", isOn: .constant(true))
                    .tint(.pink)
                    .padding(.horizontal)
            }
            
            Section("其它") {
   
    
    
                Color.green
                    .frame(height: 100)
            }
        }
        .font(.largeTitle.bold())
    }
}

在上面的代码中,我们将之前容器中所有子视图都划分到 3 个独立的 Section 中去了:

在这里插入图片描述

那么问题来了:我们的自定义容器能否识别传入内容中的 Sections?

答案是肯定的!

可能聪明的小伙伴们都已经猜到了,之前我们讨论过的 SwiftUI 6.0 中 ForEach 和 Group 的新构造器都有支持 Sections 的重载形式:

在这里插入图片描述
在这里插入图片描述

下面我们就看看如何利用它

猜你喜欢

转载自blog.csdn.net/mydo/article/details/142681217
今日推荐