初始化SwiftUI视图< Spacer>

jchrr9hc  于 5个月前  发布在  Swift
关注(0)|答案(1)|浏览(79)

我在SwiftUI视图主体中看到了这样的代码,用于初始化和放置视图:

MyView<Spacer>("xyz",
                    image: "myimage",
                    color: .orange,
                    binding: self.$demoBinding
                )

字符串
我想知道泛型<Spacer>在这里的用途是什么,语法规则说了什么?
下面是MyView的声明和初始化器:

typealias Action = () -> Void

struct MyView<Content: View>: View {

  private var text, hint: String
  private var image: String?
  private var color: Color?

  private var content: Content?
  private var onClick: Action?

  private var useToggle: Bool
  @Binding private var toggleState: Bool

  init(_ text: String, hint: String = "", image: String? = nil, color: Color? = nil, binding: Binding<Bool>) {
    
 }


}

5m1hhzi4

5m1hhzi41#

第一个月
很可能是这样开始的

struct MyView<Something>: View where Something == AnyType {

}

字符串
然后在属性中使用Something

struct MyView<Something>: View where Something == AnyType {
     let something: Something

}


SwiftUI最常见的用法是传递“Content”

struct MyView<Something>: View where Something : View {
     @ViewBuilder var someView: Something

     var body: some View {
         someView
     }

}


我建议您查看Swift协议部分,以便了解更多有关该主题的信息
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/protocols/

相关问题