Как отобразить несколько строк в ячейке tableView

У меня есть несколько длинных строк, которые усекаются при отображении в ячейке tablView. Я сделал это, чтобы расширить представление таблицы:

tableView.rowHeight = 100;

Как сделать шрифт меньше, а также обернуть текст в ячейку табличного представления?

Ответы на вопрос(3)

Решение Вопроса

ВtableView:cellForRowAtIndexPath: Вы можете установить несколько свойств для textLabel (или descriptionLabel, в зависимости от того, какой стиль ячейки вы используете), чтобы сделать это. Задаватьfont изменить шрифт,linkBreakMode сделать это переносом слов, иnumberOfLines установить максимальное количество строк (после которого он усекается. Вы можете установить это значение на 0, если нет макс.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell* aCell = [tableView dequeueReusableCellWithIdentifier:kMyCellID];
    if( aCell == nil ) {
        aCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kMyCellID] autorelease];

        aCell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:10.0];
        aCell.textLabel.lineBreakMode = NSLineBreakByWordWrapping; // Pre-iOS6 use UILineBreakModeWordWrap
        aCell.textLabel.numberOfLines = 2;  // 0 means no max.
    }

    // ... Your other cell setup stuff here

    return aCell;
}
 zpasternack27 сент. 2012 г., 23:16
Насколько я знаю, единственное, что не рекомендуется в iOS6, этоUILineBreakModeWordWrap. NSLineBreakByWordWrapping является эквивалентом iOS6. Обновил мой ответ.
 Napolux27 сент. 2012 г., 22:50
Это не рекомендуется в iOS6. Как вы можете сделать это в iOS6 ???

Вы должны создать подкласс UITableViewCell и сделать так, чтобы он имел UITextView вместо UITextField. Затем назначьте свой подкласс вашему UITableView.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell* Cell = [tableView dequeueReusableCellWithIdentifier:kMyCellID];
    if( Cell == nil ) {
        Cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kMyCellID] autorelease];

       Cell.textLabel.font = [UIFont fontWithName:@"TimesNewRoman" size:10.0];
       Cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
       Cell.textLabel.numberOfLines = 2;  // 0 means no max.
    }

  // your code here

    return Cell;
}

Ваш ответ на вопрос