自定义 UITableViewCell 纯代码方式和xib方式
一、纯代码方式:
1、初始化UITableView
#import "TemporaryPayListViewController.h" #import "TemporaryPayTableViewCell.h" #import "HomePageOrderModel.h" @interface TemporaryPayListViewController ()<UITableViewDataSource,UITableViewDelegate> @property (nonatomic, strong, readwrite) UITableView *tableView; @property (nonatomic, copy) NSMutableArray *dataArray; @end @implementation TemporaryPayListViewController - (NSMutableArray *)dataArray { if (_dataArray == nil) { NSMutableArray *mArray = [NSMutableArray array]; for (int i = 0; i < 4; i++) { HomePageOrderModel *homePageOrderModel = [[HomePageOrderModel alloc] initWithData:[NSString stringWithFormat:@"标题%d", i]]; homePageOrderModel.amount=[NSString stringWithFormat:@"%d", i]; [mArray addObject:homePageOrderModel]; } _dataArray = mArray; } return _dataArray; } - (void)viewDidLoad { [super viewDidLoad]; [self addTitleViewWithTitle:self.title isShowLeftImage:YES]; [self initTableView]; } NSString *ID=@"TemporaryPayTableViewCell"; -(void) initTableView{ self.tableView=[[UITableView alloc]init]; [self.view addSubview:self.tableView]; [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo([self mNavigationbarHeight]); make.bottom.mas_equalTo(0); make.left.right.mas_equalTo(0); }]; self.tableView.dataSource = self; self.tableView.delegate = self; [self.tableView registerClass:[TemporaryPayTableViewCell class] forCellReuseIdentifier:ID]; self.tableView.separatorColor = [UIColor whiteColor]; //self.tableView.rowHeight = 140; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; //设置tableView所有的cell的真实高度是自动计算的(根据设置的约束) self.tableView.rowHeight = UITableViewAutomaticDimension; //设置tableView的估算高度 self.tableView.estimatedRowHeight = 200; //设置是否有弹簧效果 [self.tableView setBounces:NO]; //当页没有显示完 清除多余的线 // self.tableView.tableFooterView=[[UIView alloc]initWithFrame:CGRectZero]; }
//点击事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.dataArray.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { TemporaryPayTableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:ID]; // 传递数组模型 cell.model = self.dataArray[indexPath.row]; //设置选中样式颜色 cell.selectionStyle = UITableViewCellSelectionStyleNone; return cell; } @end
2、、自定义UITableViewCell
.h
@class HomePageOrderModel; @interface TemporaryPayTableViewCell : UITableViewCell @property (nonatomic, strong) HomePageOrderModel *model; @end
.m
#import "TemporaryPayTableViewCell.h" @interface TemporaryPayTableViewCell () @property (nonatomic,weak) UIImageView *image_head; @end @implementation TemporaryPayTableViewCell #pragma mark --------- 添加子控件 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ if(self=[super initWithStyle:style reuseIdentifier:reuseIdentifier]){ UIImageView *image_head=[[UIImageView alloc]init]; self.image_head=image_head; [self.contentView addSubview:self.image_head]; } return self; } #pragma mark --------- 设置控件位置 - (void)layoutSubviews{ [self.image_head mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(10); make.bottom.mas_equalTo(10); make.left.mas_equalTo(0); make.width.height.mas_equalTo(20); }]; self.image_head.image=[UIImage imageNamed:@"loginHeadImg"]; } - (void)setModel:(HomePageOrderModel *)model { _model = model; //赋值数据 // self.lb_car_color.text = model.title; } @end
3、HomePageOrderModel
.h
@interface HomePageOrderModel : NSObject @property (nonatomic, copy, readwrite) NSString *uniquekey; @property (nonatomic, copy, readwrite) NSString *title; @property (nonatomic, copy, readwrite) NSString *date; @property (nonatomic, copy, readwrite) NSString *category; @property (nonatomic, copy, readwrite) NSString *author_name; @property (nonatomic, copy, readwrite) NSString *url; @property (nonatomic, copy, readwrite) NSString *amount; @property (nonatomic, copy, readwrite) NSString *thumbnail_pic_s; @property (nonatomic, copy, readwrite) NSString *thumbnail_pic_s02; @property (nonatomic, copy, readwrite) NSString *thumbnail_pic_s03; @property (assign, nonatomic, getter = isSelect) BOOL isSelect; - (instancetype)initWithPageData:(NSDictionary *)dict; - (instancetype)initWithData:(NSString *)title; - (instancetype)initWithDataIsShow:(NSInteger)isShow; @end
.m
#import "HomePageOrderModel.h" @implementation HomePageOrderModel - (instancetype)initWithPageData:(NSDictionary *)dict { self = [super init]; if (self) { [self setValuesForKeysWithDictionary:dict]; } return self; } - (instancetype)initWithData:(NSString *)title { self = [super init]; if (self) { self.title = title; } return self; } @end
二、Xib方式