// XMGDealsViewController.m // 06-自定义等高cell01-storyboard #import "XMGDealsViewController.h" #import "XMGDeal.h" #import "XMGDealCell.h" @interface XMGDealsViewController () <UITableViewDataSource, UITableViewDelegate> @property (weak, nonatomic) IBOutlet UITableView *tableView; /** 所有的团购数据 */ @property (nonatomic, strong) NSMutableArray *deals; @end @implementation XMGDealsViewController - (NSMutableArray *)deals { if (_deals == nil) { // 加载plist中的字典数组 NSString *path = [[NSBundle mainBundle] pathForResource:@"deals.plist" ofType:nil]; NSArray *dictArray = [NSArray arrayWithContentsOfFile:path]; // 字典数组 -> 模型数组 NSMutableArray *dealArray = [NSMutableArray array]; for (NSDictionary *dict in dictArray) { XMGDeal *deal = [XMGDeal dealWithDict:dict]; [dealArray addObject:deal]; } _deals = dealArray; } return _deals; } - (void)viewDidLoad { [super viewDidLoad]; // 允许在编辑模式进行多选操作 self.tableView.allowsMultipleSelectionDuringEditing = YES; } - (IBAction)multiOperation:(id)sender { [self.tableView setEditing:!self.tableView.isEditing animated:YES]; } - (IBAction)remove { // 获得所有被选中的行 NSArray *indexPaths = [self.tableView indexPathsForSelectedRows];//被选中的才会放到数组里,放到数组里的才会被删掉; // 便利所有的行号 NSMutableArray *deletedDeals = [NSMutableArray array]; for (NSIndexPath *path in indexPaths) { [deletedDeals addObject:self.deals[path.row]]; } // 删除模型数据 [self.deals removeObjectsInArray:deletedDeals]; // 刷新表格 一定要刷新数据 [self.tableView reloadData]; } #pragma mark - Table view data source - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.deals.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // 创建cell XMGDealCell *cell = [XMGDealCell cellWithTableView:tableView]; // 取出模型数据 cell.deal = self.deals[indexPath.row]; return cell; } #pragma mark - TableView代理方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { } @end
数据模型,自定义的XMGDealCell都没什么变的
// XMGDealCell.h // 06-自定义等高cell01-storyboard #import <UIKit/UIKit.h> @class XMGDeal; @interface XMGDealCell : UITableViewCell @property (weak, nonatomic) IBOutlet UIImageView *checkView; /** 团购模型数据 */ @property (nonatomic, strong) XMGDeal *deal; + (instancetype)cellWithTableView:(UITableView *)tableView; @end
// XMGDealCell.m // 06-自定义等高cell01-storyboard #import "XMGDealCell.h" #import "XMGDeal.h" @interface XMGDealCell() @property (weak, nonatomic) IBOutlet UIImageView *iconView; @property (weak, nonatomic) IBOutlet UILabel *titleLabel; @property (weak, nonatomic) IBOutlet UILabel *buyCountLabel; @property (weak, nonatomic) IBOutlet UILabel *priceLabel; @end @implementation XMGDealCell + (instancetype)cellWithTableView:(UITableView *)tableView { static NSString *ID = @"deal"; XMGDealCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; if (cell == nil) { cell = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([XMGDealCell class]) owner:nil options:nil] lastObject]; } return cell; } - (void)setDeal:(XMGDeal *)deal { _deal = deal; // 设置数据 self.iconView.image = [UIImage imageNamed:deal.icon]; self.titleLabel.text = deal.title; self.priceLabel.text = [NSString stringWithFormat:@"¥%@", deal.price]; self.buyCountLabel.text = [NSString stringWithFormat:@"%@人已购买", deal.buyCount]; } @end