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