叫cellForRowAtIndexPath
正如評論指出的那樣,你不能叫cellForRowAtIndexPath
內heightForRowAtIndexPath
。
你可以做的是創建一個模板單元格,用於填充數據,然後計算其高度。 該單元格不參與表格渲染,並且可以重複使用它來計算每個表格單元格的高度。
簡而言之,它包括配置模板單元格與要顯示的數據,使其根據內容調整大小,然後讀取其高度。
我採取這種代碼從一個項目我工作的 - 不幸的是它在目標C,我不認爲你會出現問題翻譯成迅速
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
static PostCommentCell *sizingCell = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sizingCell = [self.tblComments dequeueReusableCellWithIdentifier:POST_COMMENT_CELL_IDENTIFIER];
});
sizingCell.comment = self.comments[indexPath.row];
[sizingCell setNeedsLayout];
[sizingCell layoutIfNeeded];
CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
return size.height;
}
可能重複[ EXC \ _BAD \ _ACCESS in heightForRowAtIndexPath iOS](http://stackoverflow.com/questions/12652761/exc-bad-access-in-heightforrowatindexpath-ios) – 2014-09-02 21:18:30
您不能從'heightForRowAtIndexPath'內調用'cellForRowAtIndexPath'。 EXC_BAD_ACCESS是由深遞歸引起的堆棧溢出引起的。 – 2014-09-02 21:19:18
我應該從哪裏調用CellForRowAtIndexPath? – 2014-09-02 21:23:57