快速搭建APP设置界面

作者: _会飞的鱼 | 来源:发表于2015-09-24 14:07 被阅读984次

基于 快速搭建一个app项目的情况下 快速搭建一个设置界面
在此 我就在第四个控制器里面实现 第四个控制器 继承于 UITablViewConroller

一、新建模型文件

Paste_Image.png

模型的设计

(LLGroupItem)组模型设计

@interface LLGroupItem : NSObject
//** 头部标题 headerTitle */
@property (nonatomic ,copy) NSString *headerTitle;

//** 尾部标题 headerTitle */
@property (nonatomic ,copy) NSString *footerTitle;

//** 一组中有几个元素 itemsArray */
@property (nonatomic ,strong) NSArray *itemsArray;

@end

行模型的设计(LLSettingItem.h),分析每一行的所有元素:比如只有标题和图片

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

//** 图标 icon */
@property (nonatomic ,copy) NSString *icon;

+ (instancetype)itemWithTitle:(NSString *)title icon:(NSString *)icon;

//加方法 快速
+ (instancetype)settingItem;
@end

LLSettingItem.m 里面

如下实现方法
+ (instancetype)itemWithTitle:(NSString *)title icon:(NSString *)icon
{
LLSettingItem *item = [self settingItem];
item.title = title;
item.icon = icon;
return item;
}
+ (instancetype)settingItem
{
return [[self alloc] init];
}

来到控制器里面 做如下操作

#import "LLFourViewController.h"
#import "LLGroupItem.h"
#import "LLSettingItem.h"
@interface LLFourViewController ()<UITabBarDelegate,UITableViewDataSource>

//当前界面的数据源 用来存储分组模型
 @property (nonatomic ,strong) NSMutableArray *groupArray;

@end

@implementation LLFourViewController

    //groupArray懒加载
    - (NSMutableArray *)groupArray
 {
    if (!_groupArray) {
        _groupArray = [NSMutableArray array];
    }
    return _groupArray;
  }

- (instancetype)init
 {
    // 设置tableView的分组样式为Group样式
    return [self initWithStyle:UITableViewStyleGrouped];
}
- (void)viewDidLoad {
[super viewDidLoad];

//添加第一组模型
[self group1];

//添加第二组模型
[self group2];

//添加第三组模型
[self group3];

}

 - (void)group1
{
//创建组模型
LLGroupItem *group0 = [[LLGroupItem alloc] init];

//创建行模型 图片我就随便用TabBar的图片代替
LLSettingItem *item = [LLSettingItem itemWithTitle:@"推送设置" icon:@"TabBar4"];
LLSettingItem *item1 = [LLSettingItem itemWithTitle:@"涨跌显示" icon:@"TabBar2"];
LLSettingItem *item2 = [LLSettingItem itemWithTitle:@"清除缓存" icon:@"TabBar1"];

//保存模型数组
group0.itemsArray = @[item,item1,item2];

//把组模型保存到groupArray数组中
[self.groupArray addObject:group0];

}

- (void)group2
{
//创建组模型
LLGroupItem *group1 = [[LLGroupItem alloc] init];

//创建行模型
LLSettingItem *item = [LLSettingItem itemWithTitle:@"免责声明" icon:@"TabBar1"];
LLSettingItem *item1 = [LLSettingItem itemWithTitle:@"常见问题" icon:@"TabBar2"];
LLSettingItem *item2 = [LLSettingItem itemWithTitle:@"关于我们" icon:@"TabBar3"];

//保存模型数组
group1.itemsArray = @[item,item1,item2];

//把组模型保存到groupArray数组中
[self.groupArray addObject:group1];
}

- (void)group3
{
//创建组模型
LLGroupItem *group2 = [[LLGroupItem alloc] init];

//创建行模型
LLSettingItem *item = [LLSettingItem itemWithTitle:@"推荐给朋友一起来赚钱吧" icon:@"TabBar4"];
LLSettingItem *item1 = [LLSettingItem itemWithTitle:@"退出当前账号" icon:@"TabBar5"];
//保存模型数组
group2.itemsArray = @[item,item1];

//把组模型保存到groupArray数组中
[self.groupArray addObject:group2];
}

 #pragma mark - UITableView代理方法

/**
 *  返回有多少组的代理方法
 */
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return self.groupArray.count;
}

/**
 *  返回每组有多少行的代理方法
 */
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

LLGroupItem *group = self.groupArray[section];
return group.itemsArray.count;
}

 /**
 *  返回每一行Cell的代理方法
 */
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

// 设置Cell的重用标识
static NSString *ID = @"cell";

// 去缓存池中取Cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

// 若取不到便创建一个带重用标识的Cell
if (cell == nil) {
    cell  = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
}

// 设置Cell右边的小箭头
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

//  取出组模型
LLGroupItem *group = self.groupArray[indexPath.section];

//  根据组模型取出行(Cell)模型
LLSettingItem *item = group.itemsArray[indexPath.row];

//  根据行模型的数据赋值
cell.textLabel.text = item.title;

// icon
cell.imageView.image = [UIImage imageNamed:item.icon];
return cell;
}

@end

大功告成

如图

Paste_Image.png

点击响应 回头更新上

相关文章

  • 快速搭建APP设置界面

    基于 快速搭建一个app项目的情况下 快速搭建一个设置界面在此 我就在第四个控制器里面实现 第四个控制器 继承于 ...

  • Xamarin.Forms学习历程(三)——Layout之一

    App开发最重要的莫过于界面的搭建,没有界面,数据也没有地方填充,即使你会如何设置一个控件,但是你如果不知道怎么安...

  • 能快速完成界面的搭建

    能快速完成界面的搭建, 目前界面搭建方式有3种: 1.故事板 要是项目用多了会卡,所以不推荐 2.Xib 要是界面...

  • 关于android - 收藏集 - 掘金

    LSettingView--- 让你更加快速的实现设置界面 - Android - 掘金设置界面条目封装,同时包含...

  • 仿印象笔记

    效果图 界面搭建 UICollectionView搭建界面 遵守数据源和代理方法 注册单元格信息 设置单元格显示内...

  • 快速设置我的界面以及设置界面

    1、引入我封装好的设置文件 https://github.com/974794055/CGXSetting.gi...

  • 打开APP设置界面

    最近苹果审核严格,导致"prefs:root="方式已私有api的理由被拒删除所有"prefs:root="跳转设...

  • android ListPreference 不显示内容 &am

    通常每个APP都有一个设置界面,以前写设置界面,又要写布局,而且每个设置的内容我们还要用sharePreferen...

  • OpenUrl

    打开自己的app设置界面 打开自己的通用设置界面 补充参考http://www.jianshu.com/p/ee6...

  • 好用的iOS界面库 ColorfulWoodUIBase

    ColorfulWoodUIBase 1. 目的:该框架致力于提供一些通用的界面设计,用于快速搭建界面,减少界面开...

网友评论

本文标题:快速搭建APP设置界面

本文链接:https://www.haomeiwen.com/subject/qkoicttx.html