我們都知道利用XIB可以很輕松的設置一個label為自適應高度,但如果將一個label放在tableviewcell上面,並且這個cell還想用XIB描述,這個時候就需要先確定label的高度再確定cell的高度,最后才能顯示到屏幕上。
所以在這里就簡單的說一下如何實現用XIB描述一個自適應高度的cell
1.首先用XIB創建一個cell:

2.確定“買家留言”label的位置,再設置右邊label約束為:距左,距右,還有跟買家留言label頂部對齊。最后再設置右邊label的Lines為0
3.在實體類的.h文件里:
@interface CustomHeightCell : UITableViewCell @property (weak, nonatomic) IBOutlet UILabel *title; @property (weak, nonatomic) IBOutlet UILabel *messgae; @property (nonatomic, copy) NSString* content; @property (nonatomic, assign) CGFloat cellHeight; @end
title:“買家留言”label
message:顯示留言信息的label
content: 留言內容
cellHeight:通過留言內容計算出來的cell高度
4..m文件中
@implementation CustomHeightCell - (void)awakeFromNib { [super awakeFromNib]; self.messgae.textColor = [UIColor lightBlackTextColor]; self.typeTitle.textColor = [UIColor lightGrayTextColor]; } - (void)setContent:(NSString *)content { _content = content; CGRect r = [content boundingRectWithSize:CGSizeMake(self.messgae.frame.size.width,10000) options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine) attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13.f]} context:nil]; self.cellHeight = r.size.height; self.messgae.text = content; } @end
在這里要注意:設置的字體大小(13.f)要跟XIB里面messageLabel的字體大小一樣,這樣才能保證計算准確。
最后正常的調用這個cell就行了。
