iOS开发UI技巧篇 -- UILable

1、iOS7 之后 UILable显示多行

    // 这个在某些场景下会出问题,没找到原因;
    UILabel *lable = [[UILabel alloc] init];
    lable.text = @"当您有新中奖订单,启动程序时通过动画提醒您。为避免过于频繁,高频彩不会提醒。";
    [self.tableView addSubview: lable];
    lable.backgroundColor = [UIColor colorWithRed:0.370 green:1.000 blue:0.940 alpha:1.000];
    <span style="color:#FF6666;">lable.numberOfLines = 0;  // 设置任意行
    CGSize size = [lable.text boundingRectWithSize:[UIScreen mainScreen].bounds.size            // 这指的是最大限制值,还可以采用 CGSizeMake(320, MAXFLOAT) 这种方式
                options:NSStringDrawingUsesLineFragmentOrigin                     // 采用这种方式最合适
                attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13]}  // 设置属性字典
                context:nil].size;  // iOS7之后的方法                                  // 有context的地方一般设置为nil </span>

//    [lable.text boundingRectWithSize:CGSizeMake(320, MAXFLOAT) 
       options:NSStringDrawingUsesLineFragmentOrigin 
       attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13]} 
       context:nil];
    lable.frame = (CGRect){{contentX,contentY},size};; // 记住frame的高度不宜过大(更不能使用MAXFLOAT),否则会不显示。

网络上的:测试过没问题

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 300, 100)];
    
   <span style="color:#FF6666;"> label.numberOfLines = 0;
    
    label.lineBreakMode = NSLineBreakByWordWrapping;</span>
    
    label.text = @"本店于十一期间特推出一系列优惠,限时限量敬请选购!沙发:钻石品质,首领风范!床垫:华贵典雅,彰显时尚!尊贵而不失奢华,典雅却不失自然!温馨和浪漫的生活,我们与你一同创造!";
    
    <span style="color:#FF6666;">CGSize size = [label sizeThatFits:CGSizeMake(label.frame.size.width, MAXFLOAT)];</span>
    
    label.frame =CGRectMake(0, 100, 300, <span style="color:#FF0000;">size.height</span>);
    
    label.font = [UIFont systemFontOfSize:14];
    
    [self.view addSubview:label];


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值