Я хотел бы создать оболочку свойства, которая делает недействительным макет моего UICollectionViewLayout
.
Поэтому я создал эту оболочку свойства
@propertyWrapper
class LayoutInvalidating {
private let layout: UICollectionViewLayout
init(layout: UICollectionViewLayout) {
self.layout = layout
self.wrappedValue = layout
}
var wrappedValue: UICollectionViewLayout {
didSet {
self.layout.invalidateLayout()
}
}
}
Затем я хотел бы использовать егоследующим образом
final class VehicleControlsCollectionViewLayout: UICollectionViewLayout {
@LayoutInvalidating(layout: self) // self is not alive
public var itemSize: CGSize = .init(width: 70, height: 70)
}
Каждый раз, когда устанавливается свойство, я хотел бы вызвать self.invalidateLayout()
.Любые идеи, как я могу получить доступ к себе, когда оно существует?