         self.addAndConstrain(view)
         self.nestedView = view
     }
+
+    public var didPrepareForReuse: ((CollectionReusableView<View>, View) -> Void)?
+
+    override public func prepareForReuse() {
+        super.prepareForReuse()
+        self.didPrepareForReuse?(self, self.nestedView)
+    }
 }

        self.contentView.addAndConstrain(view)
        self.nestedView = view
    }
}

// MARK: - CollectionReusableView

        self.contentView.addAndConstrain(view)
        self.nestedView = view
    }

    public var didPrepareForReuse: ((TableViewCell<View>, View) -> Void)?

    override public func prepareForReuse() {
        super.prepareForReuse()
        self.didPrepareForReuse?(self, self.nestedView)
    }
}

// MARK: - TableViewHeaderFooterView
