我正在使用UITableViewCellStyleValue2
和UITableViewStyleGrouped
。
让我们从一些代码开始(它不是100%完成,但我试图包含所需的代码,希望能够破译我正在做的事情,也许还有错误):
#define CELL_FONTSIZE 15.0f
CGSize textSizeValue2 = {207.0f, 9999.0f};
if ([value isEqual: CELL_4]) {
CGSize size = [cell4String sizeWithFont:[UIFont boldSystemFontOfSize:CELL_FONTSIZE] constrainedToSize:textSizeValue2 lineBreakMode:UILineBreakModeWordWrap];
size.height += CELL_HEIGHT; // top and bottom margin
result = MAX(size.height, 44.0f); // at least one row
对于这个特定的单元格,高度的结果在3.0和3.1
时都达到214以下是单元格的代码:
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
cell.detailTextLabel.numberOfLines = 0;
cell.clearsContextBeforeDrawing;
if ([value isEqual: CELL_4]) {
cell.textLabel.text = @"About";
cell.detailTextLabel.text = cell4String;
所以基本上,对于3.0和3.1,完全相同的事情正在发生,但是当在3.0模拟器中运行应用程序时,如果cell.detailTextLabel.numberOfLines
有超过三行文本,则最后一行似乎被切断。奇怪的是,文本被切断了,但是单元格在3.0中的正确高度绘制,单元格下方只有一个大的空白空间。
任何人都知道为什么3.0和3.1之间存在差异?我知道我正在使用Xcode的测试版,但它很奇怪它在测试版中工作而不是在3.0中,因为据我所知,我并没有做任何太疯狂的事情,而是基本的事情。
由于
答案 0 :(得分:1)
好吧,我没有答案或解决方案。但我只想指出我面临同样的问题。我想我会告诉你,你不是唯一一个,这可能是值得的。
我正在使用安装了3.0 iPhone SDK的Xcode 3.1.3(不是测试版)。 “空白区域”出现在模拟器和设备上,两者都运行固件3.0。我没有尝试过更新的版本。
答案 1 :(得分:1)
您需要确定使用其中的文本呈现的文本区域的大小。为此,请使用类似于下面的函数,然后将其设置为所讨论的tableviewcell的行高。相应地调整字体大小。我添加了一个20的垫子给它一些呼吸空间
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [[detailValues objectAtIndex:indexPath.section] sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
labelHeight = labelSize.height + 20;
答案 2 :(得分:0)
当我在iOS5上遇到类似的问题时,我发现了这个帖子,所以我会留下几行来解决我如何解决我的问题,以防其他人被卡住。在我的单元格上,我已经提高了文本的字体大小,然后切断了文本,尽管还有足够的空间让它适合。我有
adjustsFontSizeToFitWidth:NO
所以用文章截断文本......
我修复它的方式只是使单元框架的整体宽度和高度变大,这就成了诀窍。
CGRect frame = CGRectMake(0, 0, SCREEN_WIDTH, height);
UIView *view = [[UIView alloc] initWithFrame:frame];
cell.frame = frame;
希望将来可以帮助某人
祝你好运