Не мога да накарам UILabel да показва повече от 3 реда

Имам tableivew с куп клетки и се опитвам да накарам 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];

Бих искал целият коментар да бъде показан в клетката на таблицата.


person Community    schedule 14.07.2009    source източник
comment
Съвет: префиксирането на методи с new (newLabelWithPrimaryColor) ще генерира предупреждения на компилатора на по-новите компилатори на llvm clang. Това е конвенция за именуване, която подсказва, че връщаната стойност не е автоматично освободена и че извикващият трябва да извика освобождаване. По-добро име би било labelWithPrimaryColor:.   -  person Joe    schedule 22.06.2011


Отговори (2)


Изглежда, че правоъгълникът на етикета е твърде малък, за да побере целия текст... Трябва да направите правоъгълника по-голям, за да не показва елипсите и да показва целия текст

person Daniel    schedule 14.07.2009
comment
Да - преоразмерявах клетката на таблицата, но не и UILabel. Отидох до метода, който създаваше етикета, и създадох математическа функция, за да задам височината въз основа на броя знаци в коментара. Благодаря Даниел. - person ; 14.07.2009

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

Автоматичното оформление автоматично се грижи за динамичната височина на етикета според текста на етикета. Ако етикетът има текст от един ред, той ще заема само един ред. И ако етикетът има повече от един ред, той ще преоразмери етикета според размера на текста и броя редове, необходими за показване на текст.

  • Присвояване и внедряване на източник на данни за изглед на таблица и делегат
  • Присвояване на UITableViewAutomaticDimension на rowHeight & EstimatedRowHeight
  • Прилагане на методи делегат/източник на данни (т.е. 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;
}

Вижте този отговор: Adjust UILabel Dynamically Within UITableViewCell?

person Krunal    schedule 21.06.2017