2013-10-14 105 views
1

我想自動調整表格單元格與自動佈局。但似乎TableView忽略高度限制。AutoLayout + UITableViewCell +高度(不工作)

我知道「tableView:heightForRowAtIndexPath:」可以做到這一點。

但是如何避免使用高度硬編碼? 有其他方法嗎?

屏幕截圖1:

https://dl.dropbox.com/s/3spak2koe2s6jif/1.png

屏幕截圖2:

[https://dl.dropbox.com/s/dnumxqv28bjh939/2.png]2

回答

2
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static UITableViewCell *cell; 
    if (cell == nil) { 
     cell = [tableView dequeueReusableCellWithIdentifier: @"YourCell"]; 
    } 
    [self configureCell:cell forIndexPath:indexPath]; // making text assignment and so on 
    return [cell.contentView systemLayoutSizeFittingSize: UILayoutFittingCompressedSize].height + 1.0f; 
} 
+0

有趣的解決方案和它的工作。 – RuslTG

+0

這通常是一個非常糟糕的主意。 'tableView:heightForRowAtIndexPath:'爲tableView中的每一行調用。如果tableView中有多個單元格,將會對性能產生巨大影響。 –

+0

Matthias Bauch,這個解決方案剛剛改變了單元格創建的順序。它不是在「tableView:cellForRowAtIndexPath:」中創建單元格,而是在「tableView:heightForRowAtIndexPath:」中創建單元格,並在「tableView:cellForRowAtIndexPath:」中重用。所以沒什麼可擔心的。 – RuslTG