изменяемый размер UITableViewCell - PullRequest
0 голосов
/ 21 февраля 2011

Можно ли создать пользовательский UITableViewCell, размер которого изменяется в зависимости от длины текста, который я хочу вставить?Если возможно, как мне это сделать?

Ответы [ 3 ]

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

@ EquinoX да, это возможно через heightForRowAtIndexPath делегат .... Пожалуйста, посмотрите this и Динамическая высота UITableViewCell у них то же самое, что и вы.

Удачи!

1 голос
/ 10 сентября 2011

Абсолютно,

Мне нравится устанавливать все данные в моей ячейке, передавая ей модель (просто объект NSO с данными в нем).Затем я создаю пользовательскую ячейку, в которой могут быть данные, заданные моделью, и добавляю функцию уровня класса для возврата размера.Это выглядит следующим образом.

TableViewDelegate:

-(float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    XTableViewCellModel *model = [self modelForIndexPath:indexPath];
    return [XTableViewCell cellHeight:model];
}

XTableViewCell:

+(CGFloat)cellHeight:(XTableViewCellModel*)model {
    CGSize titleSize = [model.title sizeWithFont:model.titleFont
                         constrainedToSize:CGSizeMake(280, 9999)
                             lineBreakMode:UILineBreakModeTailTruncation];
    return titleSize.height;
}

Обратите внимание, что установка lineBreakMode в UILineBreakModelTailTruncation вступает в силу только после достижения высоты 9999 точек,До этого текст переносится нормально.

Посмотрите мою фреймворк с открытым исходным кодом вокруг этого материала.Он имеет много изменяемых типов ячеек, построенных по умолчанию: https://github.com/andrewzimmer906/XCell

0 голосов
/ 21 февраля 2011

Посмотрите на этот Пример кода , он использует именно то, что вы ищете.

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