我有一堆带有一堆细胞的桌子,我试图让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];
我希望整个评论显示在表格单元格中。
答案 0 :(得分:1)
看起来像标签的矩形太小而不适合所有文字...你必须使矩形更大,以便它不显示椭圆并显示整个文本
答案 1 :(得分:0)
使用自动布局设计概念,不要为UILabel设置高度限制并设置否。行为0 。
Autolayout根据标签文本自动处理标签的动态高度。如果label有单行文本,那么它将仅占用单行空间。如果标签有多行,那么它将根据文本大小和显示文本所需的行数来调整标签大小。
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;
}