动态创建和定位不同大小的UILabel

时间:2011-12-24 18:43:04

标签: ios ios5

我正在创建动态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];
}

我正在努力寻找一种更好的方法来实现动态标签布局。

有什么建议吗?

1 个答案:

答案 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;

希望这应该有所帮助。