根据文本内容动态确定Label的宽高

1.- (CGSize)sizeWithAttributes:(NSDictionary *)attrs;

       当文本内容的宽不超过屏幕的宽时,就可以确定Label的宽,否则,只会显示出一行,超出的内容不会显示出来。 

    self.myLabel = [[UILabel alloc]init];

    [self.view addSubview:self.myLabel];

    self.myLabel.text  = @"iOS根据文字字数动态确定Label宽高";

    self.myLabel.textColor = [UIColor redColor];

    UIFont *font = [UIFont fontWithName:@"HelveticaNeue" size:24.0f];

    self.myLabel.font = font;

据字体得到NSString的尺寸

   CGSize size = [self.myLabel.text sizeWithAttributes:@{NSFontAttributeName:font}];

    self.myLabel.frame = CGRectMake(0, 100, size.width, size.height);


2. -(CGRect)boundingRectWithSize: options: attributes: context:
根据正文内容多少,动态确定正文content的frame

   self.myLabel.numberOfLines = 0;

    // self.myLabel.lineBreakMode = NSLineBreakByWordWrapping;

       CGRect tmpRect = [ self . myLabel . text boundingRectWithSize : CGSizeMake (200, MAXFLOAT ) options : NSStringDrawingUsesLineFragmentOrigin attributes :[ NSDictionary dictionaryWithObjectsAndKeys :font, NSFontAttributeName , nil ] context : nil ];

    self.myLabel.frame = CGRectMake(0, 100, tmpRect.size.width,tmpRect.size.height);




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值