自定義tableViewCell 1、獨立使用xib創建的cell不需要使用:註冊cell,不然會使用不了,如下代碼 [self.tableView registerClass:[ableViewCell class] forCellReuseIdentifier:@“actionCell"]; 問 ...
自定義tableViewCell 1、獨立使用xib創建的cell不需要使用:註冊cell,不然會使用不了,如下代碼 [self.tableView registerClass:[ableViewCell class] forCellReuseIdentifier:@“actionCell"]; 問:那如何載入呢:(使用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、在哪需要使用註冊cell 答:當在tableView中自定義cell時,用類綁定cell時,才需要註冊cell。別忘記了,自定義的tableViewcontroller+xib,是不能在tableView中自定義cell的,只有在storyBoard中才行。 //----------------------------------------------------- 步驟: 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 4、使用 GActionsTableViewCell *cell = [IMUAllActionsTableViewCell allActionCellWithTableView:tableView]; GDataModel *data = self.Arrays[indexPath.row]; cell.actionData = data; return cell;