上次介绍的UITableView,这里再做一个UITableView的小程序,汽车品牌,截图如下:

UITableView小程序 汽车品牌

 

1.1创建项目,这里不多讲。

1.2 把所有汽车品牌的图片放到images.xcassets中,如下图:

UITableView小程序 汽车品牌

1.3创建 plist数据,plist数据里面每个array为一个汽车品牌分组,每个array里面又有一个array,这里面存放每个分组下所有的品牌汽车数据,数据如下图。

UITableView小程序 汽车品牌

1.4数据创建完之后,然后设计页面,页面很简单,直接放一个UItable View就可以了。

2.1后台代码,第一步导入

<UITableViewDataSource,UITableViewDelegate,UIAlertViewDelegate>

只有导入这UItable View的这几个代理,我们才能在后面的代码中使用UItable View的一些相对应的方法。

2.2 创建UItable View控件的属性,和创建一个存储数据的数组,如下。

@property (weak, nonatomic) IBOutlet UITableView *tableView;

@property(nonatomic,strong)NSArray *carGroups;

2.3 加载数据,这边先要创建两个模型类来保存数据,国为我们这里的数据都在本地的plist文化中,所以我们要把这个plist里面的数据读取出来保存在

创建的carGroups数组中,而本地的plist文件是一个array类型,而每个array里面又有一个array数组,所以我们要创建两个模型类来保存数据,一个模型类保存外面的array数据,一个模型类来保存array里面的子array数据,然后在模型类里面创建和plist里面对应的数据的属性和方法  代码如下:

#import <Foundation/Foundation.h>

@interface ZKCarModel : NSObject
//头像
@property(nonatomic,copy)NSString * icon;
//名字
@property(nonatomic,copy)NSString *name;

+(instancetype)CarWithDict:(NSDictionary *)dic;

-(instancetype)initWithDict:(NSDictionary *)dic;
@end


#import "ZKCarModel.h"

@implementation ZKCarModel

-(instancetype)initWithDict:(NSDictionary *)dic
{
    if(self=[super init])
    {
        [self setValuesForKeysWithDictionary:dic];
    }
    
    return self;
}

+(instancetype)CarWithDict:(NSDictionary *)dic
{
    return [[self alloc] initWithDict:dic];
}

@end

#import <Foundation/Foundation.h>
#import "ZKCarModel.h"

@interface ZKCarGroupModel : NSObject
//题目
@property(nonatomic,copy)NSString *title;

@property(nonatomic,strong)NSArray *cars;

+(instancetype)CarGroupWithDic:(NSDictionary *)dic;

-(instancetype)initWithDict:(NSDictionary *)dic;

@end



#import "ZKCarGroupModel.h"

@implementation ZKCarGroupModel

-(instancetype)initWithDict:(NSDictionary *)dic
{
    if(self=[super init])
    {
        self.title=dic[@"title"];
        
        NSMutableArray *Array=[NSMutableArray array];
        
        for (NSDictionary *dict in dic[@"cars"]) {
           
            ZKCarModel *Car=[ZKCarModel CarWithDict:dict];
            
            [Array addObject:Car];
        }
        
        self.cars=Array;
    
    }
    return self;
}

+(instancetype)CarGroupWithDic:(NSDictionary *)dic
{
    return [[self alloc] initWithDict:dic];
}
@end
View Code

相关文章: