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的高度足够大。