如何在 swiftUI 中创建自定义形状

How can I create custom shapes in swiftUI

我正在学习 swiftui,我想在我的应用程序中创建一些形状。

我决定创建一个函数来显示形状,而不是重复我的代码。

我尝试创建一个包含形状的函数并在需要的地方调用它。

import SwiftUI

struct HomeView: View {
    var body: some View {
        VStack{
            HStack{
               rect()
            }
        }
    }
}

func rect() {
    Rectangle()
        .frame(width: 100, height: 100)
        .cornerRadius(18)
}

struct HomeView_Previews: PreviewProvider {
    static var previews: some View {
        HomeView()
    }
}

我的问题是什么,我该如何解决才能为按钮、文本框、图像等创建不同的样式...

要创建用于显示视图的函数,必须创建 @ViewBuilder 函数和 return 一些视图。

你需要做这样的事情:-

      @ViewBuilder func rect() -> some View {
   
              Rectangle()
                  .frame(width: 100, height: 100)
                  .cornerRadius(18)

      }

你走在正确的轨道上,而不是定义一个函数,定义一个新视图:

struct MyRect: View {

    var body: some View {
        Rectangle()
            .frame(width: 100, height: 100)
            .cornerRadius(18)
    }
}

// Embed with 'MyRect()'

或者,您代码中的 func rect 可以有一个 return 类型 some View:

func rect() -> some View {
    Rectangle()
        .frame(width: 100, height: 100)
        .cornerRadius(18)
}

// Embed with 'rect()'

函数 rect 的类型为 Void,正文在您的 View returns some View 中。您应该使函数的 return 类型符合 View,因此:

  1. return 形状 func rect() -> Shape {

  2. return 视图 func rect() -> some View {

请注意,如果使用选项 1,您不能 return 任何不是 Shape.

的内容