2013-08-07 42 views
0

我一直在開發幾個tableviews。我覺得像浪費時間一直在執行heightForRowAtIndexPath。有沒有辦法將高度默認爲行的最大值y,這顯然是從cellForRowAtIndexPath構建的,添加了默認的填充?heightForRowAtIndexPath - 如何默認單元格的最大元素高度

我在問自己,爲什麼這個方法不在默認的iOS中,如果cellForRowAtIndexPath內存消耗太大,開發人員可能會重寫此方法。

+1

正如你所說,創建*所有*表視圖細胞可以是時間和內存昂貴的操作,所以我能理解,這是不是默認的方法。但我們只能推測蘋果爲什麼或者沒有實現什麼... –

回答

0

下面的代碼展示我們如何實現我們的呼籲 - heightForRowAtIndexPath

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    NSString *text = [items objectAtIndex:[indexPath row]]; 

    CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f); 

    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; 

    CGFloat height = MAX(size.height, 44.0f); 

    return height + (CELL_CONTENT_MARGIN * 2); 
} 
+0

謝謝,這就是我正在做的。我討厭這樣做。一定有更聰明的東西。 – Chris

相關問題