6

私のレイアウトを無効にするプロパティラッパーを作成したいと思い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()。それが存在するときに自分自身にアクセスする方法はありますか?

4

1 に答える 1