UIlabel換行測試
NSString * labelStr = @「你好,這是UILabel的自動換行測試內容,主要實現多行數據的自動換行,自適應不一樣行數的數據」; CGSize labelSize = {0, 0}; labelSize = [labelStr sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(200.0, 5000) lineBreakMode:UILineBreakModeWordWrap]; //14 爲UILabel的字體大小 //200爲UILabel的寬度,5000是預設的一個高度,表示在這個範圍內 label.numberOfLines = 0;//表示label能夠多行顯示 label.lineBreakMode = UILineBreakModeCharacterWrap;//換行模式,與上面的計算保持一致。 label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, labelSize.height);//保持原來Label的位置和寬度,只是改變高度。
UITabelView換行字體
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSString * labelStr = @「你好,這是UILabel的自動換行測試內容,主要實現多行數據的自動換行,自適應不一樣行數的數據」; CGSize labelSize = {0, 0}; labelSize = [labelStr sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(200.0, 5000) lineBreakMode:UILineBreakModeWordWrap]; //14 爲UILabel的字體大小 //200爲UILabel的寬度,5000是預設的一個高度,表示在這個範圍內 return labelSize.height + delta; //delta 是Cell除了自適應控件UILabel外的其它控件所佔的高度。 }