2014-10-10 54 views
3

我有一個表格視圖,它具有由代碼創建的動態單元格。 In IOS 7以確保得到充分的展示單元,我覆蓋的方法heightForRowAtIndexPathUITableViewAutomaticDimension

重寫此方法在iOS8上似乎讓我的電池只是一個在另一個之上,並且所有大小的67.0003

我不想爲單元格創建自動佈局佈局,它們太複雜並且已經制作

有沒有辦法解決ios 8中的高度問題?

回答

3

沒有與方法heightForRowAtIndexPath沒有問題的,它的工作原理以及在iOS8上以及 的問題是在我的heightForRowAtIndexPath我寫

CGSize size; 
a bunch of ifs 
size.height = something 

,並在其他情況下,我不得不

size.height+= something 

and size.height在開始時並非總是0

3

UITableViewAutomaticDimension僅適用於自動佈局。如果您不使用自動佈局,請不要使用類似於

self.tableView.rowHeight = UITableViewAutomaticDimension; 

如果您可以提供控制器的代碼,這將會很有幫助。

+0

我該如何禁用它?讓系統讓我做計算? – 2014-10-11 02:40:19

+0

嘗試設置self.tableView.estimatedRowHight = 44;只留下.rowHeight並覆蓋heightForRowAtIndexPath。 – Tuan 2014-10-11 12:10:54

+0

正如在帖子中提到的,覆蓋ios8中的heightForRowAtIndexPath使得所有的行都在另一個之上。如果我不覆蓋他們,他們都設置爲67點高 – 2014-10-11 13:14:07

0

如果你想要動態cel l你需要先設置單元格的大小

例如: 你想給每個tableview單元格的一些文本信息首先你需要根據單元格的高度來計算高度,然後在heightForRowAtIndexPath中設置單元格的高度

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *)indexPath 
{ 
    NSString* text= [yourArray objectAtIndex:indexPath.row]; 
    CGSize textSize= [text getTextSize]; 

    if (textSize<SomeMinValue) 
    { 
     textSize= CGSizeMake(cellWidth, SomeMinValue) 
    } 

    return textSize.height; 

} 
相關問題