源码-0204-UITableView02

 

 

//
//  ViewController.m
//  05-UITableView01-多组数据
#import "ViewController.h"
#import "XMGCar.h"
#import "XMGCarGroup.h"

@interface ViewController () <UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *tableView;
/** 所有组数据 */
@property (nonatomic, strong) NSArray *groups;
@end

@implementation ViewController

- (NSArray *)groups
{
    if (_groups == nil) {
        // 创建模型数据
        XMGCarGroup *group0 = [[XMGCarGroup alloc] init];
        group0.header = @"德系";
        group0.footer = @"德系车666";
        group0.cars = @[
                        [XMGCar carWithName:@"奥迪" icon:@"m_9_100"],
                        [XMGCar carWithName:@"宝马" icon:@"m_3_100"],
                        [XMGCar carWithName:@"奔驰" icon:@"m_2_100"]
                        ];
        
        XMGCarGroup *group1 = [[XMGCarGroup alloc] init];
        group1.header = @"日系";
        group1.footer = @"日系车666777";
        group1.cars = @[
                        [XMGCar carWithName:@"奥迪1" icon:@"m_9_100"],
                        [XMGCar carWithName:@"奔驰1" icon:@"m_2_100"],
                        [XMGCar carWithName:@"奥迪1" icon:@"m_9_100"],
                        [XMGCar carWithName:@"奔驰1" icon:@"m_2_100"],
                        [XMGCar carWithName:@"奥迪1" icon:@"m_9_100"],
                        [XMGCar carWithName:@"奔驰1" icon:@"m_2_100"],
                        [XMGCar carWithName:@"奥迪1" icon:@"m_9_100"],
                        [XMGCar carWithName:@"奔驰1" icon:@"m_2_100"],
                        [XMGCar carWithName:@"奥迪1" icon:@"m_9_100"],
                        [XMGCar carWithName:@"奔驰1" icon:@"m_2_100"],
                        [XMGCar carWithName:@"奥迪1" icon:@"m_9_100"],
                        [XMGCar carWithName:@"奔驰1" icon:@"m_2_100"]
                        ];
        
        XMGCarGroup *group2 = [[XMGCarGroup alloc] init];
        group2.header = @"日系1";
        group2.footer = @"日系车999999";
        group2.cars = @[
                        [XMGCar carWithName:@"奥迪2" icon:@"m_9_100"],
                        [XMGCar carWithName:@"奔驰2" icon:@"m_2_100"]
                        ];
        
        _groups = @[group0, group1, group2];
    }
    return _groups;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 设置数据源
    self.tableView.dataSource = self;
}

#pragma mark - <UITableViewDataSource>
/**
 *  告诉tableView第section组有多少行
 */
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    XMGCarGroup *group = self.groups[section];
    return group.cars.count;
}

/**
 *  告诉tableView一共有多少组数据
 */
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.groups.count;
}

/**
 *  告诉tableView第indexPath行显示怎样的cell
 */
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [[UITableViewCell alloc] init];
    
    XMGCarGroup *group = self.groups[indexPath.section];
    XMGCar *car = group.cars[indexPath.row];
    
    cell.textLabel.text = car.name;
    cell.imageView.image = [UIImage imageNamed:car.icon];
    
    return cell;
}

/**
 *  告诉tableView第section组的头部标题
 */
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    XMGCarGroup *group = self.groups[section];
    return group.header;
}

/**
 *  告诉tableView第section组的尾部标题
 */
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
    XMGCarGroup *group = self.groups[section];
    return group.footer;
}
@end

 

 

//
//  XMGCar.h
//  05-UITableView01-多组数据
#import <Foundation/Foundation.h>

@interface XMGCar : NSObject
/** 名字 */
@property (nonatomic, strong) NSString *name;
/** 图标 */
@property (nonatomic, strong) NSString *icon;

+ (instancetype)carWithName:(NSString *)name icon:(NSString *)icon;
@end
//
//  XMGCar.m
//  05-UITableView01-多组数据
#import "XMGCar.h"

@implementation XMGCar
+ (instancetype)carWithName:(NSString *)name icon:(NSString *)icon
{
    XMGCar *car = [[self alloc] init];
    car.name = name;
    car.icon = icon;
    return car;
}
@end

 

 

//
//  XMGCarGroup.h
//  05-UITableView01-多组数据
#import <Foundation/Foundation.h>

@interface XMGCarGroup : NSObject
/** 头部标题 */
@property (nonatomic, strong) NSString *header;
/** 尾部标题 */
@property (nonatomic, strong) NSString *footer;
/** 这组所有的车辆模型(这个数组里面存放的都是XMGCar模型) */
@property (nonatomic, strong) NSArray *cars;
@end
//
//  XMGCarGroup.m
//  05-UITableView01-多组数据
#import "XMGCarGroup.h"

@implementation XMGCarGroup

@end

 

posted @ 2017-02-22 11:36  laugh  阅读(212)  评论(0编辑  收藏  举报