我有这堂课:
class MyObject:ObservableObject, Hashable {
static func == (lhs: PageView, rhs: PageView) -> Bool {
lhs.id == rhs.id
}
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
@Published var visible:Bool
@Published var myObject:MyObject
let id = UUID()
init(_ myObject:MyObject) {
self.myObject = myObject
self.isVisible = false
}
}
和这个模型
class MyModel:ObservableObject {
@Published var myObjects = [MyObject]()
...
}
稍后在应用程序中我有这个:
@ObservedObject private var myModel:MyModel
init(_ myModel:MyModel) {
self.myModel = myModel
}
ScrollView(.vertical, showsIndicators: false) {
ForEach(model.myObjects, id: \.self) { object in
MyPanel(object)
.opacity(object.isVisible ? 1 : 0.6)
.allowsHitTesting(object.isVisible)
}
}
对象最初看起来是半透明的。我更改了isVisible一个对象的属性,它在滚动视图上继续透明。
我该如何解决?