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外的其它控件所占的高度。 }
