SwiftUI一起学之十五 -- View作为参数

一 学习目标

学习把View 作为一个参数传入其他的 View

如给任何View增加背景矩形

二 学习效果

image

三 主要操作步骤

// 定义一个背景View
struct BackgroundView: View {
    var height: CGFloat? = 200
    var content: () -> Content

    var body: some View {
        VStack(alignment: .center, spacing: 0, content: content)
            .frame(maxWidth: .infinity, alignment: .center)
            .frame(height: height, alignment: .center)
            .background(Color.blue)
            .clipShape(RoundedRectangle(cornerRadius: 6, style: .continuous))
    }
}

在任何使用的地方,我们只需要使用 BackgroundView 并传入一个 View 就可以显示一个背景色了。

struct FunctionUIView: View {
    var body: some View {
        BackgroundView{
            Text("View传参")
        }
    }
}

四 完整代码

import SwiftUI

struct FunctionUIView: View {
    var body: some View {
        BackgroundView{
            Text("View传参")
        }
    }
}

// 背景View
struct BackgroundView: View {
    var height: CGFloat? = 200
    var content: () -> Content

    var body: some View {
        VStack(alignment: .center, spacing: 0, content: content)
            .frame(maxWidth: .infinity, alignment: .center)
            .frame(height: height, alignment: .center)
            .background(Color.blue)
            .clipShape(RoundedRectangle(cornerRadius: 6, style: .continuous))
    }
}

参考:

  1. SwiftUI 初学者一定要知道的一个传参方法

你可能感兴趣的:(SwiftUI一起学之十五 -- View作为参数)