之前一直沒有用過FDTemplateLayoutCell,因為最近項目有需要動態計算高度的內容,于是本著省事的原則,采取第三方框架來解決掉這事。翻了一會,發現這個框架非常的強大,就立即采用了。
簡略的看了一下官方提供的文檔后,就上手了,流程很簡單,注冊一個cell(必須要這樣注冊一個cell,也可以registerClass)
[self registerNib:[UINib nibWithNibName:@"Cell" bundle:nil] forCellReuseIdentifier:reuseIdentifier];
然后在heightForRowAtIndexPath方法里
return [tableView fd_heightForCellWithIdentifier:reuseIdentifier cacheByIndexPath:indexPath configuration:^(id cell) {
[self configCell:cell indexPath:indexPath];
}];
就完成了高度的自動計算。
但是顯然我并沒有成功計算,日志打印內容:[FDTemplateLayoutCell] Warning once only: Cannot get a proper cell height (now 0) from '- systemFittingSize:'(AutoLayout). You should check how constraints are built in cell, making it into 'self-sizing' cell.
從這上面看到,我的約束似乎是有問題的。于是我又從仔細檢查了我的約束。
圖片.png
圖中指示的位置,我之前并沒有約束,原本我是想到我的上面的控件是固定了高度的,不需要這個約束,但是問題也就在這里了。FDTemplateLayoutCell的計算機制需要對上下都要約束到,這也是我之前的高度計算無效的原因。
并不是什么復雜的問題,但是也讓我好找了,記錄下來,希望我的問題能為您提供幫助。