//
// ZZSettingGroup.h
// ZZ_APP主流框架
//
// Created by ZZ_Macpro on 15/10/9.
// Copyright (c) 2015年 ZZ_Macpro. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface ZZSettingGroup :NSObject
@property (nonatomic,copy) NSString *header;
@property (nonatomic,copy) NSString *footer;
@property (nonatomic,strong) NSArray *items;
+ (instancetype)group;
@end
//
// ZZSettingGroup.m
// ZZ_APP主流框架
//
// Created by ZZ_Macpro on 15/10/9.
// Copyright (c) 2015年 ZZ_Macpro. All rights reserved.
//
#import "ZZSettingGroup.h"
@implementation ZZSettingGroup
+ (instancetype)group
{
return [[selfalloc] init];
}
@end
//
// ZZSettingCheckGroup.h
// ZZ_APP主流框架
//
// Created by ZZ_Macpro on 15/10/9.
// Copyright (c) 2015年 ZZ_Macpro. All rights reserved.
//
#import "ZZSettingGroup.h"
@class ZZSettingCheckItem,ZZSettingLabelItem;
@interface ZZSettingCheckGroup :ZZSettingGroup
/**
* 选中的索引
*/
@property (nonatomic,assign) NSInteger checkedIndex;
/**
* 选中的item
*/
@property (nonatomic,strong) ZZSettingCheckItem *checkedItem;
/**
* 来源于哪个item
*/
@property (nonatomic,strong) ZZSettingLabelItem *sourceItem;
@end
//
// ZZSettingCheckGroup.m
// ZZ_APP主流框架
//
// Created by ZZ_Macpro on 15/10/9.
// Copyright (c) 2015年 ZZ_Macpro. All rights reserved.
//
#import "ZZSettingCheckGroup.h"
#import "ZZSettingCheckItem.h"
#import "ZZSettingLabelItem.h"
@implementation ZZSettingCheckGroup
- (ZZSettingCheckItem *)checkedItem
{
for (ZZSettingCheckItem *itemin self.items) {
if (item.isChecked)return item;
}
return nil;
}
- (void)setCheckedItem:(ZZSettingCheckItem *)checkedItem
{
for (ZZSettingCheckItem *itemin self.items) {
item.checked = (item == checkedItem);
}
self.sourceItem.text = checkedItem.title;
}
- (NSInteger)checkedIndex
{
for (int i =0; i < self.items.count; i++) {
ZZSettingCheckItem *item = self.items[i];
if (item.isChecked)return i;
}
return -1;
}
- (void)setCheckedIndex:(NSInteger)checkedIndex
{
if (checkedIndex < 0 || checkedIndex >= self.items.count)return;
self.checkedItem =self.items[checkedIndex];
}
- (void)setItems:(NSArray *)items
{
[supersetItems:items];
self.sourcrItem =self.sourceItem;
}
- (void)setSourcrItem:(ZZSettingLabelItem *)sourceItem
{
_sourceItem = sourceItem;
for (ZZSettingCheckItem *itemin self.items) {
item.checked = [item.titleisEqualToString:sourceItem.text];
}
}
@end

本文介绍了一个用于iOS应用的设置组件实现方案,包括设置组(ZZSettingGroup)和带有选择功能的设置组(ZZSettingCheckGroup)。ZZSettingGroup提供基本的设置组功能,如标题、描述及条目列表;ZZSettingCheckGroup在此基础上增加了选择功能,允许用户从多个选项中进行选择,并同步显示已选项目。
50

被折叠的 条评论
为什么被折叠?



