我正在创建动态UILabel,然后将它们添加到视图中。标签采用垂直布局。像这样:
标签1
标签2
标签3
每个标签可以有不同的高度。所以为了适应高度我使用下面的代码。 Label 2使用Label 1位置和高度在视图上调整自身。
-(void) createAboutLabel
{
self.aboutLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.nameLabel.frame.origin.x, self.nameLabel.frame.origin.y + self.nameLabel.frame.size.height, self.view.frame.size.width - 10, 40)];
self.aboutLabel.text = self.selectedVegetableCategory.about;
self.aboutLabel.font = [Utility getFont:@"Sinhala Sangam MN" size:14];
// [self.aboutLabel sizeToFit];
[self.aboutLabel setNumberOfLines:0];
[self.aboutLabel setLineBreakMode:UILineBreakModeWordWrap];
[self.aboutLabel sizeToFit];
[self.scrollView addSubview:self.aboutLabel];
}
我正在努力寻找一种更好的方法来实现动态标签布局。
有什么建议吗?
答案 0 :(得分:1)
通过宽度和宽度字体,高度可以检索 -
NSString * theText = myLabel.text; CGFloat width = myLabel.frame.size.width; CGSize theSize = [theText sizeWithFont:myLabel.font constrainedToSize:CGSize(width,MAXFLOAT)lineBreakMode:UILineBreakModeWordWrap];
它将从提取高度返回大小。 CGFloat myLabelHeight = theSize.height;
希望这应该有所帮助。