2011-12-24 167 views
0

我正在创建动态UILabels,然后将它们添加到视图中。标签是垂直布局。像这样:动态创建和定位不同尺寸的UILabels

标签1

标签2

标签3

每个标记可以是不同的高度。所以为了适应高度我使用下面的代码。标签2使用标签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]; 
} 

我想找到一个更好的方式来实现动态标签布局。

有什么建议吗?

+2

我不明白你的问题是什么。你能澄清一下吗? – MadhavanRP 2011-12-24 18:47:09

+1

我不知道你在问什么。 – Steve 2011-12-24 18:47:31

+0

我已经更新了原来的问题! – azamsharp 2011-12-24 18:53:05

回答

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;

希望这应该有所帮助。

+0

这有助于!谢谢! – haifacarina 2014-09-23 18:58:02