根據字數多少改變label大小

在大多屬性情況下,給UILabel進行動態數據綁定的時候,往往需要根據字符串的多少,動態調整UILabel的寬度或高度。

下面分兩種情況考慮:

1、UILabel寬度不變,根據字體多少,自動調整UILabel的高度,并折行顯示。

代碼如下:

[cpp] view plaincopy

1 UILabel?*label?=?[[UILabel?alloc]?initWithFrame:CGRectMake(0,?10,?200,?20)];

2 label.font?=?[UIFont?boldSystemFontOfSize:20.0f];??//UILabel的字體大小

3 label.numberOfLines?=?0;??//必須定義這個屬性,否則UILabel不會換行

4 label.textColor?=?[UIColor?whiteColor];

5 label.textAlignment?=?NSTextAlignmentLeft;??//文本對齊方式

6 [label?setBackgroundColor:[UIColor?redColor]];

7

8 //寬度不變,根據字的多少計算label的高度

9 NSString?*str?=?@"可以更改此內容進行測試,寬度不變,高度根據內容自動調節";

10 CGSize?size?=?[str?sizeWithFont:label.font?constrainedToSize:CGSizeMake(label.frame.size.width,?MAXFLOAT)?lineBreakMode:NSLineBreakByWordWrapping];

11 //根據計算結果重新設置UILabel的尺寸

12 [label?setFrame:CGRectMake(0,?10,?200,?size.height)];

13 label.text?=?str;

14

15 [self.view?addSubview:label];

16 [label?release];

2、UILabel高度不變,根據字體多少,自動調整UILabel的寬度,并折行顯示

代碼如下:

[cpp] view plaincopy

1 UILabel?*label?=?[[UILabel?alloc]?initWithFrame:CGRectMake(0,?10,?20,?20)];

2 label.font?=?[UIFont?boldSystemFontOfSize:20.0f];??//UILabel的字體大小

3 label.numberOfLines?=?0;??//必須定義這個屬性,否則UILabel不會換行

4 label.textColor?=?[UIColor?whiteColor];

5 label.textAlignment?=?NSTextAlignmentLeft;??//文本對齊方式

6 [label?setBackgroundColor:[UIColor?redColor]];

7

8 //高度固定不折行,根據字的多少計算label的寬度

9 NSString?*str?=?@"高度不變獲取寬度,獲取字符串不折行單行顯示時所需要的長度";

10 CGSize?size?=?[str?sizeWithFont:label.font?constrainedToSize:CGSizeMake(MAXFLOAT,?label.frame.size.height)];

11 NSLog(@"size.width=%f,?size.height=%f",?size.width,?size.height);

12 //根據計算結果重新設置UILabel的尺寸

13 [label?setFrame:CGRectMake(0,?10,?size.width,?20)];

14 label.text?=?str;

15

16 [self.view?addSubview:label];

17 [label?relea

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容