彩票12——设置1_数据模型创建
一、图示
二、QWMSettingItem 基类创建
根据上面的图示,我们可以发现有好几种数据模型,一种是右边是箭头的,一种是右边是开关控件的,还有的是子标题的。
不管哪种,它们都有一些共同的属性,比如:左边的图片,标题,子标题,点击的时候处理事情。
根据这些,我们创建基类 QWMSettingItem
2.1 QWMSettingItem.h
//
// QWMSettingItem.h
// 03_UIView79_彩票
//
// Created by 杞文明 on 17/8/30.
// Copyright © 2017年 杞文明. All rights reserved.
// 行模型
#import <Foundation/Foundation.h>
@interface QWMSettingItem : NSObject
/**图片*/
@property(nonatomic,strong)UIImage *icon;
/**标题*/
@property(nonatomic,copy)NSString *title;
/**子标题*/
@property(nonatomic,copy)NSString *subTitle;
/**点击行的时候要干的事情*/
@property(nonatomic,copy) void(^operationBlock)(NSIndexPath *indexPath);
+ (instancetype)itemWithTitle:(NSString *)title;
+ (instancetype)itemWithIcon:(UIImage *)icon title:(NSString *)title;
@end
2.2 QWMSettingItem.m
//
// QWMSettingItem.m
// 03_UIView79_彩票
//
// Created by 杞文明 on 17/8/30.
// Copyright © 2017年 杞文明. All rights reserved.
//
#import "QWMSettingItem.h"
@implementation QWMSettingItem
+ (instancetype)itemWithTitle:(NSString *)title{
return [self itemWithIcon:nil title:title];
}
+ (instancetype)itemWithIcon:(UIImage *)icon title:(NSString *)title{
QWMSettingItem *item = [[self alloc]init];
item.icon = icon;
item.title = title;
return item;
}
@end
三、QWMSettingArrowItem 右边是箭头的模型
// QWMSettingArrowItem.h
// 03_UIView79_彩票
//
// Created by 杞文明 on 17/8/30.
// Copyright © 2017年 杞文明. All rights reserved.
// 右箭头的item
#import "QWMSettingItem.h"
@interface QWMSettingArrowItem : QWMSettingItem
/**目标控制器 这种item是要打开界面的*/
@property(nonatomic,assign)Class desVc;
@end
四、QWMSettingSwitchItem 右边是开关的模型
//
// QWMSettingSwitchItem.m
// 03_UIView79_彩票
//
// Created by 杞文明 on 17/8/30.
// Copyright © 2017年 杞文明. All rights reserved.
//
#import "QWMSettingSwitchItem.h"
@implementation QWMSettingSwitchItem
@end
五、QWMSettingGroup 组模型
我们刚刚创建的行模型,那么我们有多个组,需要创建组模型,有头、尾标题,与行集合数据。
5.1 QWMSettingGroup.h
//
// QWMSettingGroup.h
// 03_UIView79_彩票
//
// Created by 杞文明 on 17/8/30.
// Copyright © 2017年 杞文明. All rights reserved.
// 组的模型
#import <Foundation/Foundation.h>
@interface QWMSettingGroup : NSObject
/** 头部标题 */
@property (nonatomic, copy) NSString *headerTitle;
/** 尾部标题 */
@property (nonatomic, copy) NSString *footTitle;
/** 行模型数组 */
@property (nonatomic, strong) NSArray *items;
+ (instancetype)gruopWithItems:(NSArray *)items;
@end
5.2 QWMSettingGroup.m
//
// QWMSettingGroup.m
// 03_UIView79_彩票
//
// Created by 杞文明 on 17/8/30.
// Copyright © 2017年 杞文明. All rights reserved.
//
#import "QWMSettingGroup.h"
@implementation QWMSettingGroup
+(instancetype)gruopWithItems:(NSArray *)items{
QWMSettingGroup *group = [[self alloc]init];
group.items = items;
return group;
}
@end