diff --git a/Source/Bricks/Generic/GenericBrick.swift b/Source/Bricks/Generic/GenericBrick.swift index 4d16935..f85fdc4 100644 --- a/Source/Bricks/Generic/GenericBrick.swift +++ b/Source/Bricks/Generic/GenericBrick.swift @@ -17,9 +17,7 @@ public protocol UpdateFramesListener { func didUpdateFrames() } -public protocol CustomHeightProvider { - func customHeight(for view: UIView, constraintedTo width: CGFloat) -> CGFloat -} +public typealias HeightProviderHandler = ((_ width: CGFloat) -> CGFloat) open class GenericBrick: Brick, ViewGenerator { public typealias ConfigureView = (_ view: T, _ cell: GenericBrickCell) -> Void @@ -77,7 +75,7 @@ open class GenericBrickCell: BrickCell { } } - open var customHeightProvider: CustomHeightProvider? + open var customHeightProvider: HeightProviderHandler? internal private(set) var fromNib: Bool = false @@ -196,7 +194,7 @@ open class GenericBrickCell: BrickCell { open override func heightForBrickView(withWidth width: CGFloat) -> CGFloat { if let heightProvider = customHeightProvider { - let height = heightProvider.customHeight(for: self.genericContentView!, constraintedTo: width) + let height = heightProvider(width) return height } else { return super.heightForBrickView(withWidth: width) diff --git a/Tests/Bricks/GenericBrickTests.swift b/Tests/Bricks/GenericBrickTests.swift index 9abcf8a..59c6845 100644 --- a/Tests/Bricks/GenericBrickTests.swift +++ b/Tests/Bricks/GenericBrickTests.swift @@ -65,7 +65,7 @@ class GenericBrickTestUILabel: GenericBrickTests { } } -class GenericBrickTestHeight: GenericBrickTests, CustomHeightProvider { +class GenericBrickTestHeight: GenericBrickTests { override func setUp() { super.setUp() @@ -77,13 +77,11 @@ class GenericBrickTestHeight: GenericBrickTests, CustomHeightProvider { func testHeight() { XCTAssertEqual(CGFloat(0), cell.heightForBrickView(withWidth: 200)) - cell.customHeightProvider = self + cell.customHeightProvider = { width in + return 100 + } XCTAssertEqual(CGFloat(100), cell.heightForBrickView(withWidth: 200)) } - - func customHeight(for view: UIView, constraintedTo width: CGFloat) -> CGFloat { - return 100 - } } class GenericBrickTestUILabelWithEdgeInsets: GenericBrickTests {