【问题标题】:How to make the text in UILabel fill all space in UILabel?如何使 UILabel 中的文本填满 UILabel 中的所有空间?
【发布时间】:2013-04-12 06:52:55
【问题描述】:
UILabel *label = [[UILabel alloc] init];
label.text = @"Hello";
[label sizeToFit];
CGSize size = label.frame.size;

通常我们通过这种方式获得标签的大小,但是 UILabel 中的文本不会填满其中的所有空间,文本周围总是有一些边距。这使得绘图标签难以与视觉草稿完全相同。有人可以帮忙吗?

例如:如果你想在一些文本的底部放置一个图标,让它们之间的边距为,例如 50px,然后你写 icon.frame = CGRectMake(10,textLabel.frame.size.height + textLabel.frame.origin.y + 50, 100, 100);但是由于文本不能填满UILabel中的所有空间,所以这种方式的边距应该比它应该的大一点。所以我想找出一个更好的方法,谢谢。

【问题讨论】:

  • 谢谢,但这并不能解决我的问题。我的意思是,如果你想在一些文本的底部放一个图标,让它们之间的边距为,例如 50px,然后你写 icon.frame = CGRectMake(10,textLabel.frame.size.height + textLabel .frame.origin.y + 50, 100, 100);但是由于文本不能填满UILabel中的所有空间,所以这种方式的边距应该比它应该的大一点。
  • 然后你可以计算你的字符串的高度并设置你的标签高度和图标 y 值一致地检查这个iosdeveloperfamily.webs.com/apps/blog/show/…

标签: iphone ios uilabel


【解决方案1】:

尝试使用下面的方法,它返回UILable 的动态高度及其文本内容...我们使用此方法可以设置UILable 的框架及其文本内容...

-(float) calculateHeightOfTextFromWidth:(NSString*) text: (UIFont*)withFont: (float)width :(UILineBreakMode)lineBreakMode
{
[text retain];
[withFont retain];
CGSize suggestedSize = [text sizeWithFont:withFont constrainedToSize:CGSizeMake(width, FLT_MAX) lineBreakMode:lineBreakMode];

[text release];
[withFont release];

return suggestedSize.height;
}

并像下面这样使用它......

     UILabel *lblAddress = [[UILabel alloc]init];
    [lblAddress setFrame:CGRectMake(110, 31, 200, 50)];        
    lblAddress.text = @"your Text ";
    lblAddress.lineBreakMode = UILineBreakModeWordWrap;
    lblAddress.numberOfLines = 0;
    lblAddress.font = [UIFont fontWithName:@"Helvetica" size:12];

    lblAddress.frame = CGRectMake(lblAddress.frame.origin.x, lblAddress.frame.origin.y, 
                             200,[self calculateHeightOfTextFromWidth:lblAddress.text :lblAddress.font :200 :UILineBreakModeWordWrap] ); 

    lblAddress.textColor = [UIColor darkGrayColor];

    [self.view addSubview:lblAddress];

My Blog..

我希望你能从这篇文章中得到一些想法......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2015-02-12
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多