2

我正在尝试构建一个 tableView,每个单元格都由一个 imageView 和标签构建。当其中一个标签超过一个句子时,就会出现问题,结果是,该标签被写在下面的标签上。当我给标签更大的高度时,标签不会从我想要的位置开始。一个句子的标签从标签之间的间隙开始......

在此处输入图像描述 在此处输入图像描述

回答:

只要确保取消自动布局。在我的情况下,我不需要它......

                titleLabel.text = @"Bla bla bla bla bla bla bla bla bla bla";
                [titleLabel sizeToFit];

                [abstractLabel setText:@"bla bla bla bla bla bla bla bla"];
                CGRect abstractFrame = titleLabel.frame;
                abstractFrame.origin.y = titleLabel.frame.origin.y + titleLabel.frame.size.height;
                abstractFrame.size.width = 180;
                [abstractLabel setFrame:abstractFrame];
                [abstractLabel sizeToFit];

*从 ate50eggs 得到这个想法 -找到 UILabel 底部位置,以便可以在下面创建第二个 UILabel

4

2 回答 2

0

您可以创建 UITableViewCell 的子类并自己对齐标签。sizeWithFont:您可以使用NSString的方法计算要显示的字符串的大小。UILabel 不支持垂直对齐。

于 2013-06-23T15:54:50.843 回答
0

您可以制作动态标签大小和自动换行。像这个:

    currentLabel.lineBreakMode = UILineBreakModeWordWrap;
    currentLabel.numberOfLines = 0;
    NSString *string = @"blablablablabla";
    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];
    CGSize constraintSize = CGSizeMake(kLabelWIdth, MAXFLOAT);
    CGSize labelSize = [string sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

    [currentLabel setFrame:CGRectMake(currentLabel.frame.origin.x, currentLabel.frame.origin.y, labelSize.width, labelSize.height)];
于 2013-06-23T17:06:56.370 回答