Содержимое ячейки UITableView, проходящее мимо графического элемента ячейки - PullRequest
0 голосов
/ 06 февраля 2011

Я использую 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 Ответ

1 голос
/ 06 февраля 2011

Ваша ширина ограничения слишком велика.Предполагается, что 320 минус 10 отступов с обеих сторон, хотя на самом деле текстовая метка меньше, чем у вас из-за выбранного вами стиля ячейки табличного представления.В предположении попробуйте ширину ограничения 200 или 180 (или значение, полученное в результате экспериментов или распечатки границ этикетки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...