自定义cell(总结)

作者: 东岳哥哥 | 来源:发表于2017-03-13 15:28 被阅读0次

1、自定义注册cell的方式:

1)独立使用xib创建的cell:

  [self.tableView registerNib:
[UINib nibWithNibName:@"GPMeMailTableViewCell" bundle:
[NSBundle mainBundle]] forCellReuseIdentifier:CellReuseIdentifier];

2)在tableView中定义的cell,用类绑定cell:

[self.tableView registerClass:
[ableViewCell class] forCellReuseIdentifier:@“actionCell"];

注册cell后的使用:
直接调用这个dequeueReusableCellWithIdentifier就好了,如下:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@“cell"];

3)不注册:(使用NSBundle)
最好的方法是在这个cell的类中定义一个方法,如下:

+(instancetype)actionCellWithTableView:(UITableView *)tableView{
    IMUActionsTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:actionCell];
    if (!cell) {
        cell = [[[NSBundle mainBundle]loadNibNamed:@"IMUActionsTableViewCell" owner:nil options:nil] firstObject];
        NSLog(@"创建了一个cell");
    }
    return cell;
}

2、步骤:

1、创建一个tableViewCell的类+xib
2、设计好cell的内容,如下图:
3、编写代码

//1、头文件
#import “GDataModel.h"
@interface GActionsTableViewCell : UITableViewCell
//cell的数据
@property(nonatomic,strong) GDataModel *data;
//类方法创建cell实例
+(instancetype)allActionCellWithTableView:(UITableView *)tableView;
@end
//2、.m文件
#import "GActionsTableViewCell.h"
#import <SDWebImage/UIImageView+WebCache.h>
#define GCell @“GCell"
@interface GActionsTableViewCell()
//文本
@property (weak, nonatomic) IBOutlet UILabel *TitleLabel;
//按钮
@property (weak, nonatomic) IBOutlet UIButton *JionBtn;
//图片
@property (weak, nonatomic) IBOutlet UIImageView *Image;
@end
 
@implementation GActionsTableViewCell
 
- (void)awakeFromNib {
//    self.actionTitleLabel.text = self.actionData.actionTitle;
   
}
//setter方法时,完成对控件的赋值
-(void)setdata:(IMUActionDataModel *)data{
    _data = data;
    self.TitleLabel.text = _data.Name;
    NSString *statusStr = nil;
    if (_data.registration) {
        statusStr = @"已报名";
        self.JionBtn.enabled = NO;
        self.JionBtn.backgroundColor = [UIColor lightGrayColor];
    }else{
        statusStr = @"报名";
    }
    [self.JionBtn setTitle:statusStr forState:UIControlStateNormal];
    [self.Image sd_setImageWithURL:[NSURL URLWithString:_data.ImageUrl] placeholderImage:nil];
}
//根据tableView创建cell实例
+(instancetype)allActionCellWithTableView:(UITableView *)tableView{
    GActionsTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:GCell];
    if (!cell) {
        cell = [[[NSBundle mainBundle]loadNibNamed:@"GActionsTableViewCell" owner:nil options:nil] firstObject];
        NSLog(@"创建了一个cell");
    }
    cell.JionBtn.layer.cornerRadius = 3;
    return cell;
}
//实现按钮事件
- (IBAction)jionUsBtnClicked:(UIButton *)sender {
    UIButton *bt = sender;
    NSString *str = bt.titleLabel.text;
    NSLog(@"str : %@",str);
}
@end

3、使用

GActionsTableViewCell *cell = [IMUAllActionsTableViewCell allActionCellWithTableView:tableView];
GDataModel *data = self.Arrays[indexPath.row];
cell.actionData = data;
return cell;

相关文章

网友评论

    本文标题:自定义cell(总结)

    本文链接:https://www.haomeiwen.com/subject/maafnttx.html