iOS tableViewCell自適應高度 第三發類庫,tablecell自適應高度

來源:互聯網
上載者:User

iOS tableViewCell自適應高度 第三發類庫,tablecell自適應高度

 在github中有許多大牛封裝好的第三發類庫,其中有個自適應cell高度的類庫

:https://github.com/gsdios/SDAutoLayout

model類

commentsModel

#import "JSONModel.h"#import "getCommentData.h"@interface commentsModel : JSONModel@property(nonatomic,copy)NSArray<getCommentData> *commentList;@end
#import "commentsModel.h"@implementation commentsModel@end

getCommentData

#import "JSONModel.h"@protocol getCommentData@end@interface getCommentData : JSONModel@property(nonatomic,copy)NSString *message;@property(nonatomic,copy)NSString *nickName;@property(nonatomic,copy)NSString *createTimeStr;@end
#import "getCommentData.h"@implementation getCommentData@end

 控制器

#import "commentsTableViewController.h"#import "commentsModel.h"#import "commentCell.h"@interface commentsTableViewController ()@property(nonatomic,strong)NSArray *commentsArray;@end@implementation commentsTableViewController-(NSArray *)commentsArray{    if (_commentsArray==nil) {        NSData *data=[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"comment_list.json" ofType:nil]];        commentsModel *commensM=[[commentsModel alloc]initWithData:data error:nil];        _commentsArray=commensM.commentList;    }    return _commentsArray;}- (void)viewDidLoad {    [super viewDidLoad];    }- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}#pragma mark - Table view data source- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {    return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {    return self.commentsArray.count;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    static NSString *ID=@"comment";    commentCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];    if (cell==nil) {        cell=[[commentCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];    }    cell.commentData=self.commentsArray[indexPath.row];        return cell;}-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{        return [self cellHeightForIndexPath:indexPath cellContentViewWidth:[self cellContentViewWith]];}-(CGFloat)cellContentViewWith{        CGFloat width=[UIScreen mainScreen].bounds.size.width;    if ([UIApplication sharedApplication].statusBarOrientation != UIInterfaceOrientationPortrait && [[UIDevice currentDevice].systemVersion floatValue] < 8) {        width = [UIScreen mainScreen].bounds.size.height;    }    return width;}@end

 

 

 

 

 

具體自訂cell的代碼

#import <UIKit/UIKit.h>@class getCommentData;@interface commentCell : UITableViewCell@property(nonatomic,strong)getCommentData *commentData;@property(nonatomic,strong)UILabel *nameLabel;@property(nonatomic,strong)UILabel *titleLabel;@property(nonatomic,strong)UILabel *dateLabel;@end
#import "commentCell.h"#import "commentsModel.h"@implementation commentCell-(void)setCommentData:(getCommentData *)commentData{    _commentData=commentData;    _titleLabel.text=commentData.message;    _dateLabel.text=commentData.createTimeStr;    _nameLabel.text=commentData.nickName;}- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];    if (self) {        [self setup];    }    return self;}-(void)setup{    _nameLabel=[UILabel new];    [self.contentView addSubview:_nameLabel];    _nameLabel.textColor=[UIColor colorWithRed:0.891 green:0.549 blue:0.073 alpha:1.000];    _nameLabel.font=[UIFont systemFontOfSize:15];    _nameLabel.numberOfLines=1;                _titleLabel=[UILabel new];    [self.contentView addSubview:_titleLabel];    _titleLabel.textColor=[UIColor darkGrayColor];    _titleLabel.font=[UIFont systemFontOfSize:15];    _titleLabel.numberOfLines=0;            _dateLabel=[UILabel new];    [self.contentView addSubview:_dateLabel];    _dateLabel.textColor=[UIColor colorWithRed:0.679 green:0.166 blue:0.828 alpha:1.000];    _dateLabel.font=[UIFont systemFontOfSize:15];    _dateLabel.numberOfLines=1;            CGFloat margin=10;    UIView *contentView=self.contentView;            _nameLabel.sd_layout    .leftSpaceToView(contentView,margin)    .topSpaceToView(contentView,margin)    .rightSpaceToView(contentView,margin)    .heightIs(20);                _titleLabel.sd_layout    .leftSpaceToView(contentView,margin)    .topSpaceToView(_nameLabel,2)    .rightSpaceToView(contentView,margin)    .autoHeightRatio(0);        _dateLabel.sd_layout    .leftSpaceToView(contentView,margin)    .topSpaceToView(_titleLabel,5)    .heightIs(20)     .widthIs(150);    [self setupAutoHeightWithBottomViewsArray:@[_titleLabel,_dateLabel,_nameLabel] bottomMargin:margin];}- (void)awakeFromNib {}- (void)setSelected:(BOOL)selected animated:(BOOL)animated {    [super setSelected:selected animated:animated];}@end

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.