2011-12-24 249 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