SwiftUI-访问泛型观察类的属性

SwiftUI-访问泛型观察类的属性,swift,swiftui,Swift,Swiftui,我是SwiftUI的新手 我有这样一个观点: struct MyScrollView: View { @ObservedObject var model:MyModel var body: some View { ScrollView { HStack { ForEach(model.items!, id: \.self) { title in Text(title) } } } 现在我

我是SwiftUI的新手

我有这样一个观点:

struct MyScrollView: View {
  
  @ObservedObject var model:MyModel

  var body: some View {
    ScrollView {
      HStack {
        ForEach(model.items!, id: \.self) { title in
          Text(title)
        }
      }
    }
现在我想创建一种新的scrollView,它继承了为MyScrollView定义的所有这些内容。事实上,我很想创建一个MyScrollView实例,并扩展它的方法和属性

问题是无法实例化结构

如果MyScrollView是一个类,我想要的是:

class MySuperScrollView: MyScrollView {
  var anotherProperty:Bool

  func anotherFunction() -> Bool {
     return anotherProperty
  }
}

^这在结构方面。

继承不是创建可使用额外属性扩展的可重用SwiftUI视图的方法

您不应该使用继承,而应该使用组合,这意味着您可以将视图分解为可重用的小组件,然后将这些视图添加到其他视图的主体中,以组合一个更复杂的视图


但是,如果看不到您想要实现什么样的更改,我就无法给出确切的代码示例。

继承不是创建可重用的SwiftUI视图的方法,您可以使用额外的属性进行扩展

您不应该使用继承,而应该使用组合,这意味着您可以将视图分解为可重用的小组件,然后将这些视图添加到其他视图的主体中,以组合一个更复杂的视图


但是,如果看不到您想要实现什么样的更改,我就无法给出确切的代码示例。

您不能继承结构视图,但可以将一个视图聚合为另一个视图,如

struct MySuperScrollView: View {
  @ObservedObject var model: MyModel
  var anotherProperty:Bool

  func anotherFunction() -> Bool {
     return anotherProperty
  }

  var body: some View {
     // ... other elements around

     MyScrollView(model: self.model)

     // ... other elements around
  }
}

您不能继承结构视图,但可以将一个视图聚合为另一个视图,如

struct MySuperScrollView: View {
  @ObservedObject var model: MyModel
  var anotherProperty:Bool

  func anotherFunction() -> Bool {
     return anotherProperty
  }

  var body: some View {
     // ... other elements around

     MyScrollView(model: self.model)

     // ... other elements around
  }
}

我在问题的末尾添加了更多信息,以说明我想做什么我在问题的末尾添加了更多信息,以说明我想做什么关于MyScrollView的属性和功能是什么?我怎样才能接近他们?你不应该。在SwiftUI中,视图之间的数据流要么通过视图模型,要么通过绑定,要么通过修改器。视图是结构,即值。MyScrollView的属性和功能如何?我怎样才能接近他们?你不应该。在SwiftUI中,视图之间的数据流要么通过视图模型,要么通过绑定,要么通过修改器。视图是结构,即值。