IOS7中自动计算label的宽度和高度的方法

 1 #import "ViewController.h"
 2 
 3 @implementation ViewController
 4 
 5 - (void)viewDidLoad {
 6     [super viewDidLoad];
 7  
 8     //根据固定的宽度计算 计算label的高度
 9     [self sizeToLabelHeight];
10     
11     //根据固定的高度 计算label的宽度
12     [self sizeToLabelWidth];
13     
14 }
15 
16 /**
17  *  自动计算label的宽度  前提高度固定
18  *
19  */
20 - (void)sizeToLabelWidth
21 {
22     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
23     label.textColor = [UIColor whiteColor];
24     label.font = [UIFont systemFontOfSize:13];
25     label.numberOfLines = 0; //这个属性 一定要设置为0   0表示自动换行   默认是1 不换行
26     label.backgroundColor = [UIColor blackColor];
27     label.textAlignment = NSTextAlignmentLeft;
28     NSString *str = @"fsdfsfnksdfjsdkhfjksdhfjdolfsdfsfnksdfjsdkhfjksdhfjsdkhfjksdhfjdojdol";
29     
30     
31     //第一种方式
32     //    CGSize size = [str sizeWithFont:label.font constrainedToSize: CGSizeMake(MAXFLOAT,label.frame.size.height) lineBreakMode:NSLineBreakByWordWrapping];
33     
34     //第二种方式
35     
36     NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
37     attrs[NSFontAttributeName] = [UIFont systemFontOfSize:13];
38     
39     CGSize size =  [str boundingRectWithSize:CGSizeMake( MAXFLOAT,label.frame.size.height) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
40     
41     label.frame = CGRectMake(5, 0, size.width, 100);
42     label.text = str;
43     
44     [self.view addSubview:label];
45 }
46 
47 
48 /**
49  *  自动计算label的高度  前提 :宽度固定
50  */
51 - (void)sizeToLabelHeight
52 {
53 
54     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
55     label.textColor = [UIColor whiteColor];
56     label.font = [UIFont systemFontOfSize:13];
57     label.numberOfLines = 0;//这个属性 一定要设置为0   0表示自动换行   默认是1 不换行
58     label.backgroundColor = [UIColor blackColor];
59     label.textAlignment = NSTextAlignmentLeft;
60     
61     NSString *str = @"fsdfsfnksdfjsdkhfjksdhfjdolfsdfsfnksdfjsdkhfjksdhfjsdkhfjksdhfjdojdol";
62     
63     //第一种方式
64     //    CGSize size = [str sizeWithFont:label.font constrainedToSize: CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
65     
66     //第二种方式
67     NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
68     attrs[NSFontAttributeName] = [UIFont systemFontOfSize:13];
69     
70     CGSize size =  [str boundingRectWithSize:CGSizeMake(label.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
71     
72     label.frame = CGRectMake(100, 100, 100, size.height);
73     label.text = str;
74     
75     [self.view addSubview:label];
76 }
77 
78 
79 @end

 

转载于:https://www.cnblogs.com/syios/p/4713453.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值