3

我有一个带有一堆单元格的表格,我试图让 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];

我希望整个评论显示在表格单元格中。

4

2 回答 2

1

似乎标签的矩形太小而无法容纳所有文本...您必须使矩形更大,以使其不显示椭圆并显示整个文本

于 2009-07-14T15:00:32.987 回答
0

采用autolayout设计理念,UILabel不设置高度约束,设置no。行数为 0

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

  • 分配和实现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;
}

看看这个答案:在 UITableViewCell 中动态调整 UILabel?

于 2017-06-21T12:07:41.220 回答