• 源码-0205-02--表格数据的批量操作03


    //  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
    本人无商业用途,仅仅是学习做个笔记,特别鸣谢小马哥,学习了IOS,另日语学习内容有需要文本和音频请关注公众号:riyuxuexishuji
  • 相关阅读:
    【.Net Micro Framework PortingKit 07】NVIC中断处理
    【.Net Micro Framework PortingKit 02】STM3210E平台构建
    【.Net Micro Framework PortingKit 06】设置芯片时钟
    【.Net Micro Framework PortingKit 03】调试初步:点亮LED灯
    【.Net Micro Framework PortingKit 01】移植初步:环境搭建
    开源System.Windows.Forms库,让.Net Micro Framework界面开发和上位机一样简单
    RVDS和MDK嵌入式开发工具调试脚本编写
    JQuery移除事件 简单
    Visual C++ 2008入门经典 第十六章 创建文档和改进视图 简单
    Visual C++ 2008入门经典 第十五章 在窗口中绘图 简单
  • 原文地址:https://www.cnblogs.com/laugh/p/6473403.html
Copyright © 2020-2023  润新知