UILabel根据字数多少自动实现适应高度

 

UILabel *msgLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 45, 0, 0)]; //290 230 msgLabel.backgroundColor = [UIColor lightTextColor]; [msgLabel setNumberOfLines:0];
    msgLabel.lineBreakMode = UILineBreakModeWordWrap;
    UIFont *fonts = [UIFont fontWithName:@"Arial" size:12];
    msgLabel.font = fonts;
    CGSize size = CGSizeMake(290, 1000);
    msgLabel.text = @"获取到的deviceToken,我们可以通过webservice服务提交给.net应用程序,这里我简单处理,直接打印出来,拷贝到.net应用环境中使用。";
    CGSize msgSie = [msgLabel.text sizeWithFont:fonts constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap]; [msgLabel setFrame:CGRectMake(15, 45, 290, msgSie.height)];
在网上找的下面的 解决了我的 困难  转载如下:
在ios开发过程中,经常需要UILabel根据内容动态调整高度,显示多行。下面为实现代码:  UIFont *fontOne = [UIFont systemFontOfSize:15.0];//设置字体大小  NSString *titleOne =@"发哈客户合法看见了发货拉菲红啊客服哈卡积分。。。。。";//要显示的内容  CGSize maximumLabelSizeOne = CGSizeMake(315,MAXFLOAT);//315为我需要的UILabel的长度  CGSize expectedLabelSizeOne = [titleOne sizeWithFont:fontOne                                            constrainedToSize:maximumLabelSizeOne                                                lineBreakMode:UILineBreakModeWordWrap]; //expectedLabelSizeOne.height 就是内容的高度 //初始化UILabel CGRect pointValueRect = CGRectMake(5, 30 ,315, expectedLabelSizeOne.height);  UILabel *pointValue = [[UILabel alloc] initWithFrame:pointValueRect]; point.lineBreakMode = UILineBreakModeWordWrap;  point.numberOfLines = 0;//上面两行设置多行显示 point.text = titleOne; 注意:point.lineBreakMode = UILineBreakModeWordWrap;          point.numberOfLines = 0; 两个设置保证了是多行显示,但是,当UILabel的高度小于字体内容的高度时,仍然显示单行,所以如果不动态设置label的高度,最好让label的高度足够大。

转载于:https://my.oschina.net/meilidashijie/blog/100408

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值