用XIB創建自適應高度的TableviewCell


  我們都知道利用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就行了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM