2013-08-29 35 views
0

我設置的heightForRowAtIndexPath這樣的設置高度:IOS heightForRowAtIndexPath,空單元

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    /* Contains the string */ 
    NSString *allStrings = [self convertMainData:indexPath]; 


    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0]; 
    CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT); 
    CGSize labelSize = [allStrings sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping]; 

    return labelSize.height + 20; 
} 

調用此方法時,表不爲空,且尺寸被正確地計算,現在的問題是,如果有在表中的數據,所有的細胞得到他們的高度變化:

http://img716.imageshack.us/img716/3025/yrgt.png

我已經試過檢查此在委託方法

if([tableview cellForRowAtIndexPath:IndexPath] == nil) 
    return 20; 

但是這會返回一個錯誤,我也嘗試了將它包裝在!= nil中,但是這沒有效果,那麼我如何將空行留在默認高度?

+0

您的圖片鏈接無效,我完全不理解您的問題陳述。你能澄清一點嗎? –

+1

你是什麼意思的空行? – rdelmar

+0

http://img716.imageshack.us/img716/3025/yrgt.png –

回答

0

我假設單元格顯示allStrings作爲其內容。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    /* Contains the string */ 
    NSString *allStrings = [self convertMainData:indexPath]; 

    if(allStrings.length == 0) 
    return 20.0f; // return default height. Adjust accordingly 

    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0]; 
    CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT); 
    CGSize labelSize = [allStrings sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping]; 

    return labelSize.height + 20; 
} 
+0

高度仍然不正確 –

+0

@JohnDOe,您需要更清楚地描述您想要的內容。目前還不清楚你的意思是空單元。 – rdelmar

+0

檢查您是否在代碼或xib中的其他位置設置了UITableView的rowHeight屬性。空單元格的高度(索引大於您在numberOfRowsInSection中返回的內容:)是從該屬性獲取的。 – Rajiv

0

你在調用空單元格實際上只是你的實際單元格下方的表格視圖繪製的線條。這些線的間距取決於最終單元格的高度。所以如果你想要一個特定的間距,你必須插入一個空白單元格作爲最後一行,並返回heightForRowAtIndexPath中該行的特定高度。

因此,Max提出的解決方案將起作用。您需要在數據模型中添加另一個條目作爲最後一個條目,以便[self convertMainData:indexPath]爲該條目返回空字符串或nil。如果您需要更多詳細信息,請分享您的數據模型和查看控制器的數據源方法的詳細信息。

0

一個空的tableview頁腳是答案。查看answer瞭解實施細節。

相關問題