diff --git a/Classes/Issues/Comments/Tables/IssueCommentTableCell.swift b/Classes/Issues/Comments/Tables/IssueCommentTableCell.swift index 770bd8867..868085485 100644 --- a/Classes/Issues/Comments/Tables/IssueCommentTableCell.swift +++ b/Classes/Issues/Comments/Tables/IssueCommentTableCell.swift @@ -52,7 +52,14 @@ UICollectionViewDelegateFlowLayout { override func layoutSubviews() { super.layoutSubviews() - collectionView.frame = contentView.bounds + if let model = self.model { + collectionView.frame = CGRect( + x: 0, + y: 0, + width: bounds.width, + height: model.size.height + ) + } } // MARK: ListBindable diff --git a/Classes/Issues/Comments/Tables/IssueCommentTableModel.swift b/Classes/Issues/Comments/Tables/IssueCommentTableModel.swift index 36f062ca2..e043d9da6 100644 --- a/Classes/Issues/Comments/Tables/IssueCommentTableModel.swift +++ b/Classes/Issues/Comments/Tables/IssueCommentTableModel.swift @@ -35,10 +35,17 @@ final class IssueCommentTableModel: NSObject, ListDiffable { let columns: [Column] let rowHeights: [CGFloat] + let size: CGSize init(columns: [Column], rowHeights: [CGFloat]) { self.columns = columns self.rowHeights = rowHeights + + let inset = IssueCommentTableCell.inset + self.size = CGSize( + width: columns.reduce(0) { $0 + $1.width } + inset.left + inset.right, + height: rowHeights.reduce(0) { $0 + $1 } + inset.top + inset.bottom + ) } // MARK: ListDiffable diff --git a/Classes/Issues/IssueCommentModelHandling.swift b/Classes/Issues/IssueCommentModelHandling.swift index da578d195..3b5dde7f2 100644 --- a/Classes/Issues/IssueCommentModelHandling.swift +++ b/Classes/Issues/IssueCommentModelHandling.swift @@ -29,8 +29,7 @@ func BodyHeightForComment( } else if let cache = webviewCache, let viewModel = viewModel as? IssueCommentHtmlModel { return cache.height(model: viewModel, width: width) } else if let viewModel = viewModel as? IssueCommentTableModel { - let inset = IssueCommentTableCell.inset - return viewModel.rowHeights.reduce(0) { $0 + $1 } + inset.top + inset.bottom + return viewModel.size.height } else { return Styles.Sizes.tableCellHeight }