Не удается получить UILabel для отображения более 3 строк - PullRequest
3 голосов
/ 14 июля 2009

У меня есть таблица с несколькими ячейками, и я пытаюсь заставить uilabel отображать более 3 строк. Я соответственно установил режим перевода строки и количество строк, но он по-прежнему отображает не более трех строк. Какие-либо предложения? Ячейка таблицы автоматически регулирует свою высоту, чтобы соответствовать количеству символов / строк, но текст показывает три строки и затем эллипс (когда вы щелкаете по ячейке, она переходит в другое представление, которое показывает полный текст.

Ниже приведен код, который я должен создать и отобразить UILabel:

   self.commentLabel = [self newLabelWithPrimaryColor:[UIColor blackColor] selectedColor:[UIColor whiteColor] fontSize:12.0 bold:YES];
    self.commentLabel.textAlignment = UITextAlignmentLeft; // default
    self.commentLabel.lineBreakMode = UILineBreakModeWordWrap;
    self.commentLabel.numberOfLines = 0; // no limit to the number of lines 
    [myContentView addSubview:self.commentLabel];
    [self.commentLabel release];

Я бы хотел, чтобы весь комментарий отображался в ячейке таблицы.

Ответы [ 2 ]

1 голос
/ 14 июля 2009

Похоже, прямоугольник метки слишком мал, чтобы вместить весь текст ... Вы должны увеличить прямоугольник, чтобы он не отображал эллипсы и отображал весь текст

0 голосов
/ 21 июня 2017

С концепцией дизайна autolayout, не устанавливает ограничения по высоте для UILabel и не устанавливает no. строк как 0 .

Autolayout автоматически позаботится о динамической высоте метки в соответствии с текстом метки. Если метка имеет однострочный текст, она будет занимать только одну строку. И если метка имеет более одной строки, она изменит размер метки в соответствии с размером текста и количеством строк, необходимых для отображения текста.

  • Назначить и реализовать источник данных tableview и делегировать
  • Назначить UITableViewAutomaticDimension для rowHeight и по оценкамRowHeight
  • Реализация методов делегата / источника данных (т.е. heightForRowAt и возвращение ему значения UITableViewAutomaticDimension)

-

Цель C:

// in ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

  @property IBOutlet UITableView * table;

@end

// in ViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
    self.table.dataSource = self;
    self.table.delegate = self;

    self.table.rowHeight = UITableViewAutomaticDimension;
    self.table.estimatedRowHeight = UITableViewAutomaticDimension;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return UITableViewAutomaticDimension;
}

Посмотрите на этот ответ: Настройте UILabel динамически в UITableViewCell?

...