2013-08-29 33 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了解实施细节。

相关问题