首页 > 代码库 > [iOS基础控件 - 6.1] 汽车品牌列表 UITableView多项显示
[iOS基础控件 - 6.1] 汽车品牌列表 UITableView多项显示
A.实现思路
1.拖入UITableView
2.拖曳、连线UITableView控件
3.Controller遵守UITalbeViewDataSource协议
4.设置UITableView的dataSource
5.加载数据到Model
6.从Model解析数据,显示到View上
B.实现细节
1.UITableView style
(1)Grouped,成组出现,标题和尾部会被分隔开,如上图
(2)Plain
C.主要代码
Car.h
1 // 2 // Car.h 3 // 01-CarBrand 4 // 5 // Created by hellovoidworld on 14/11/30. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>10 11 @interface Car : NSObject12 13 @property(nonatomic, strong) NSArray *cars;14 @property(nonatomic, copy) NSString *title;15 @property(nonatomic, copy) NSString *desc;16 17 - (instancetype) initWithDictionary:(NSDictionary *) dictionary;18 + (instancetype) carWithDictionary:(NSDictionary *) dictionary;19 + (instancetype) car;20 21 @end
Car.m
1 // 2 // Car.m 3 // 01-CarBrand 4 // 5 // Created by hellovoidworld on 14/11/30. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import "Car.h"10 11 @implementation Car12 13 - (instancetype) initWithDictionary:(NSDictionary *) dictionary {14 if (self == [super init]) {15 self.cars = dictionary[@"cars"];16 self.title = dictionary[@"title"];17 self.desc = dictionary[@"desc"];18 }19 20 return self;21 }22 23 + (instancetype) carWithDictionary:(NSDictionary *) dictionary {24 return [[self alloc] initWithDictionary:dictionary];25 }26 27 + (instancetype) car {28 return [self carWithDictionary:nil];29 }30 31 @end
ViewController.m
1 // 2 // ViewController.m 3 // 01-CarBrand 4 // 5 // Created by hellovoidworld on 14/11/30. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import "ViewController.h"10 #import "Car.h"11 12 @interface ViewController () <UITableViewDataSource>13 14 @property (weak, nonatomic) IBOutlet UITableView *tableView;15 16 @property(nonatomic, strong) NSArray *allBrandOfCars;17 18 @end19 20 @implementation ViewController21 22 - (void)viewDidLoad {23 [super viewDidLoad];24 // Do any additional setup after loading the view, typically from a nib.25 26 self.tableView.dataSource = self;27 }28 29 - (void)didReceiveMemoryWarning {30 [super didReceiveMemoryWarning];31 // Dispose of any resources that can be recreated.32 }33 34 35 #pragma mark - dataSource方法36 37 /** Sections 数,组数 */38 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {39 return self.allBrandOfCars.count; // 所有车的派系的数量40 }41 42 /** 组内的行数 */43 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {44 Car *car = self.allBrandOfCars[section];45 return car.cars.count; // 每个派系的车的牌子的数量46 }47 48 /** 组的标题49 这里是车的派系50 */51 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {52 Car *car = self.allBrandOfCars[section];53 return car.title;54 }55 56 /** 组的尾部 */57 - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {58 Car *car = self.allBrandOfCars[section];59 return car.desc;60 }61 62 /** 行的内容 */63 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {64 UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];65 66 Car *car = self.allBrandOfCars[indexPath.section]; // 车的派系67 NSString *carName = car.cars[indexPath.row]; // 具体车的牌子68 69 cell.textLabel.text = carName;70 71 return cell;72 }73 74 75 /** 延迟加载plist文件中的数据 */76 - (NSArray *) allBrandOfCars {77 if (nil == _allBrandOfCars) {78 NSArray *dictArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cars_simple" ofType:@"plist"]];79 80 NSMutableArray *mdictArray = [NSMutableArray array];81 for (NSDictionary *dict in dictArray) {82 Car *car = [Car carWithDictionary:dict];83 [mdictArray addObject:car];84 }85 86 _allBrandOfCars = mdictArray;87 }88 89 return _allBrandOfCars;90 }91 92 93 @end
[iOS基础控件 - 6.1] 汽车品牌列表 UITableView多项显示
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。