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