尽管我设置了label.numberOfLines = 0,但UILabel只显示了文本的第一行

时间:2012-01-13 10:31:00

标签: ios uitableview uilabel

我创建了自定义UITableViewCell。

@interface AnswerCell : UITableViewCell
@property (nonatomic, retain) IBOutlet UILabel *textLabel;
@property (nonatomic, retain) IBOutlet UILabel *detailTextLabel;
@end

并设置detailTextLabel.numberOfLines = 0;

        cell = [tableView dequeueReusableCellWithIdentifier:kAnswerIdentifier];
        if (cell == nil)
        {
            [[NSBundle mainBundle] loadNibNamed:@"AnswerCell" owner:self options:nil];
            cell=answerCell;
        }            

        cell.detailTextLabel.text = [self extractText:indexPath forLabelAttribute:kDetailTextLabel];
        cell.detailTextLabel.font = [self extractFont:indexPath forLabelAttribute:kDetailTextLabel];
        cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.detailTextLabel.numberOfLines = 0;

UILabel仅显示文本的第一行。但为什么呢?

更新:我的detailTextLabel的高度= 21.我需要做什么?我需要更改身高= 1000吗?

3 个答案:

答案 0 :(得分:4)

我猜您无法显示所有文字,因为标签高度太小。您需要根据文本长度设置所需的高度。

请参阅Adjust UILabel height depending on the text的答案

答案 1 :(得分:1)

您需要调整UILabel的大小..使用 -

计算其高度
[contentsStr sizeWithFont:[UIFont fontWithName:@"Helvetica" size:17.0f] 

然后相应调整大小

您可能需要更改字体及其大小

答案 2 :(得分:1)

如果您有标签的宽度,请使用以下方法获取显示字符串所需的字符串大小,

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size

并将大小设置为标签。

Apple documentation可以在这里看到。