我正在尝试构建一个tableView,每个单元格都由imageView和标签构建。 当其中一个标签超过一个句子,结果是,该标签被写在下面的标签上时,会出现问题。当我给标签更高的高度时,标签不会从我想要的地方开始。带有一个句子的标签从标签之间的间隙开始......
答案:
只需确保取消autoLayout即可。在我的情况下,我不需要它......
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 - Find UILabel bottom position so a second UILabel can be created below
获得了这个想法答案 0 :(得分:0)
您可以创建UITableViewCell的子类并自己对齐标签。您可以使用NSString的sizeWithFont:
方法计算要显示的字符串的大小。 UILabel不支持垂直对齐。
答案 1 :(得分: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)];