无法让UILabel显示超过3行

时间:2009-07-14 14:42:25

标签: ios objective-c uitableview uilabel tablerow

我有一堆带有一堆细胞的桌子,我试图让uilabel显示超过3行。我正确设置了linebreakmode和numberoflines,但它仍然没有显示超过三行。有什么建议?表格单元格自动调整其高度以容纳字符/行的数量,但文本显示三行,然后是椭圆(当您单击单元格时,它会转到显示全文的另一个视图。

以下是我必须创建并显示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 个答案:

答案 0 :(得分:1)

看起来像标签的矩形太小而不适合所有文字...你必须使矩形更大,以便它不显示椭圆并显示整个文本

答案 1 :(得分:0)

使用自动布局设计概念,不要为UILabel设置高度限制并设置否。行为0

Autolayout根据标签文本自动处理标签的动态高度。如果label有单行文本,那么它将仅占用单行空间。如果标签有多行,那么它将根据文本大小和显示文本所需的行数来调整标签大小。

  • 分配并实施tableview dataSource和delegate
  • 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?