SwiftUI-访问泛型观察类的属性
我是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) } } } 现在我
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中,视图之间的数据流要么通过视图模型,要么通过绑定,要么通过修改器。视图是结构,即值。