UILabel內(nèi)容自適應(yīng)在UITableViewCell中顯示

?首先我們在cell.h中定義 一個方法

+ (CGFloat)getCellHeightContent:(NSString *)content;

在cell.m 中實現(xiàn)這個方法

首先第一步 自己先要實現(xiàn)以下方法

+ (CGFloat)getHeightText:(NSString *)text font:(UIFont *)font labelWidth:(CGFloat)width{

NSDictionary *attrDic = @{NSFontAttributeName:font};

CGRect strRect = [text boundingRectWithSize:CGSizeMake(width,MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:attrDic context:nil];

return strRect.size.height;

}

在來實現(xiàn)我們前面定義的那個方法

+(CGFloat)getCellHeightContent:(NSString *)content{

CGFloat margin = 60 * FitHeight;//這個是你除去label的高度,顯示在cell中其他控件的高度

return [self? getHeightText:content font:tabFont labelWidth:ScreenWidth - 100 * FitWidth] + margin;

}


接著我們在ViewController.h頁面中調(diào)用就可以了

在這個方法里我們首先要定義label的位置,賦值,高度(label的內(nèi)容是自適應(yīng)的)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

cell.ContentLabel.text = [NSString stringWithFormat:@"%@",CommentModel.content];

cell.ContentLabel.numberOfLines = 0;

cell.ContentLabel.lineBreakMode = NSLineBreakByWordWrapping;

CGSize size = [cell.ContentLabel sizeThatFits:CGSizeMake(ScreenWidth - 100 * FitWidth, MAXFLOAT)];//根據(jù)文字的長度返回一個最佳寬度和高度

cell.ContentLabel.frame = CGRectMake(cell.HeadPortraitimage.x + cell.HeadPortraitimage.width + 10 * FitWidth, cell.NameLabel.y + cell.NameLabel.height, ScreenWidth - 100 * FitWidth, size.height);//label的位置寬度和高度自適應(yīng)

}

最后我們來定義cell的高度 ?這個時候我們就要調(diào)用我們前面寫的那個方法

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

CommentListModel * CommentModel = self.CommentArray[indexPath.row];//用你自己的cell

return [CommentTableViewCell getCellHeightContent:[NSString stringWithFormat:@"%@",CommentModel.content]];//這里注意,要給你的label賦一次值

}

注:這是我在做一個項目中給新聞評論的內(nèi)容來自適應(yīng),并把這個內(nèi)容一起放到UITableViewCell中顯示,自己總結(jié)的一點小小的經(jīng)驗,希望對你們有所幫助,如有其他好的方法,還希望您賜教!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容