【问题标题】:Dynamically Creating and Positioning UILabels of Different Sizes动态创建和定位不同大小的UILabel
【发布时间】:2011-12-24 18:43:04
【问题描述】:

我正在创建动态 UILabel,然后将它们添加到视图中。标签采用垂直布局。像这样:

标签 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];
}

我正在尝试找到一种更好的方法来实现动态标签布局。

有什么建议吗?

【问题讨论】:

  • 我不明白你的问题是什么。你能澄清一下吗?
  • 我不知道你在问什么。
  • 我已经更新了原来的问题!
  • 你得到这个答案了吗?我也面临同样的问题。你能帮忙吗?

标签: ios ios5


【解决方案1】:

通过传递宽度和字体,可以检索高度-

NSString *theText = myLabel.text; CGFloat 宽度 = myLabel.frame.size.width ; CGSize theSize = [theText sizeWithFont:myLabel.font constrainedToSize:CGSize(width,MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];

它将返回该提取高度的大小。 CGFloat myLabelHeight = theSize.height;

希望这会有所帮助。

【讨论】:

  • 这有帮助!谢谢!
猜你喜欢
  • 2016-01-14
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 2020-10-04
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 2019-05-26
相关资源
最近更新 更多