簡體   English   中英

如何使UILabel中的文本填充UILabel中的所有空格?

[英]How to make the text in UILabel fill all space in UILabel?

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中的所有空間,因此這種方式的邊距應該比應有的大一些。 所以我想找出一個更好的方法,謝謝。

嘗試使用這個bellow方法返回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];

我的博客 ..

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM