UITableView单元格内容经过单元格图形

时间:2011-02-05 23:59:44

标签: objective-c cocoa-touch uitableview

我正在使用heightForRowAtIndexPath和sizeWithFont来计算单元格的高度。在3或4行文本之后,包含文本的标签会越过单元格视图的顶部和底部。 0-3行的任何东西都会正常增长和收缩。

我找不到牢房高度上的硬帽。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    NSArray *array = [sectionsArray objectAtIndex:indexPath.section];
    NSDictionary *dictionary = [array objectAtIndex:indexPath.row];

    id key = [[dictionary allKeys] objectAtIndex:0];
    NSString *keyString = [NSString stringWithFormat:@"%@", key];
    NSString *keyContents = [NSString stringWithFormat:@"%@", [dictionary objectForKey:key]];
    CGFloat height = 44;

    if ([keyString isEqualToString:@"Notes"]) {
        if ([keyContents length] > 0) {
            CGSize constraint = CGSizeMake(320.0f - (10.0f * 2), 20000.0f);
            height = 20 + [keyContents sizeWithFont:[UIFont boldSystemFontOfSize:15] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap].height;
        }
    }

    NSLog(@"Height of %@ with content %@ is %f", keyString, keyContents, height);

    if (height <= 44) {
        return 44;
    }
    else {
        return height;
    }

}

这是一个太大条目的截图。 Clipped cell view

1 个答案:

答案 0 :(得分:1)

您的约束宽度太大。您假设320减去任意一侧的10个填充,实际上文本标签小于由于您选择的表视图单元格样式。猜测一下,尝试约束宽度为200或180(或者从实验中得出的值或打印出标签的边界。)