UITableView设置界面完整封装(二)

简单MVC实现UITableView设置界面之Cell右边类型设置

首先来看看第一种方法证明使用,结合两种方法之后根据个人的爱好去选择就可以了,

一:使用枚举的方式

在Cell模型中定义一个枚举类,

typedef enum : NSUInteger {
    XMGSettingItemRightViewTypeArrow,
    XMGSettingItemRightViewTypeSwitch,
} XMGSettingItemRightViewType;

然后定义一个枚举对应的属性

 /** cell右边辅助视图类型 *
 @property (nonatomic, assign) iCocosSettingItemRightViewType type;

因为cell中的一个cellforRowAtIndexPath里面设置对应的cell右边的类型(accessoryType和accessoryView),

所以这里就在这个方法里面判断对应的模型,就是外面传过来的枚举类型设置对应的控件属性

最后一步我们就可以在对应的创建Cell的时候设置对应枚举的类型

此时就可以实现类型的设置

二:使用继承模型的方式

第二种就是使用继承自Cell模型的子类模型用来实现类型的设置

 
好处:
  • 1:每个Cell不一样,而且不同的Cell可能不需要实现点击进入
  • 2:更加体现了MVC思念,实现解藕

新建对应类型的两个模型类,里面不需要做任何操作

SWitch中定义一个开关属性来记录开关的状态

/** 开关值 */

@property (nonatomic, assign) BOOL isOpen;

在Cell中判断并且设置对应的类型

 #pragma mark - 设置辅助视图

 - (void)setUpAccessoryView

 {

     // 设置辅助视图

     if ([_item isKindOfClass:[iCocosSettingArrowItem class]]) {

         // 展示箭头

         UIImageView *arrowView = [[UIImageView alloc] initWithImage:[UIImageimageNamed:@"arrow_right"]];

         self.accessoryView = arrowView;

     }else if ([_item isKindOfClass:[iCocosSettingSwitchItem class]]){

         // 展示开关

         UISwitch *switchView = [[UISwitch alloc] init];

         self.accessoryView = switchView;

     }else{

         self.accessoryView = nil;

     }

 }

然后修改对应创建Cell的类型,根据对应的类型使用对应的类核父类的方法来实现不同类型的现实

     // 使用兑换码

     iCocosSettingItem *RedeemCode = [iCocosSettingArrowItem itemWithImage:[UIImage imageNamed:@"RedeemCode"] title:@"使用兑换码"];

     // 使用兑换码

     iCocosSettingItem *RedeemCode1 = [iCocosSettingArrowItem itemWithImage:[UIImage imageNamed:@"RedeemCode"] title:@"使用兑换码"];

     // 使用兑换码

     iCocosSettingItem *RedeemCode2 = [iCocosSettingArrowItem itemWithImage:[UIImage imageNamed:@"RedeemCode"] title:@"使用兑换码"];

     // 使用兑换码

     iCocosSettingItem *RedeemCode3 = [iCocosSettingArrowItem itemWithImage:[UIImage imageNamed:@"RedeemCode"] title:@"使用兑换码"];

     // 描述第一组有多少个行模型,描述第1组

     NSArray *items = @[RedeemCode,RedeemCode1,RedeemCode2,RedeemCode3];

     // 创建组模型

     iCocosGroupItem *group = [iCocosGroupItemgroupWithItems:items];

     group.footerTitle = @"bcd";

     // 添加到group总数组

     [self.groups addObject:group];

这样同样可以实现不同类型的现实:

关于这里使用哪种方式这里就不多说了,看个人,不过第二种的好处更多!

iOS开发——开发必备OC篇&UITableView设置界面完整封装(二)的更多相关文章

  1. iOS开发——开发必备OC篇&UITableView设置界面完整封装(三)

    UITableView设置界面完整封装(三) 简单MVC实现UITableView设置界面之界面跳转 创建一个需要调整的对应的控制器 在需要调整的类型模型中创建对应的属性用来实现调整类型控制器的设置 ...

  2. iOS开发——开发必备OC篇&UITableView设置界面完整封装(一)

    UITableView设置界面完整封装(一) 简单MVC实现UITableView设置界面分组数据显示 一:模型 1:cell模型 /** 描述cell图片 */ @property (nonatom ...

  3. iOS开发——开发必备OC篇&UITableView设置界面完整封装(四)

    设置界面完整封装(四) 简单MVC实现UITableView设置界面完善封装及拓展使用 关于使用和拓展, 其实基本上就是同UItableView,知识讲数据改一下就可以 拓展使用 1:首先定义一个数组 ...

  4. ios开发——实用技术篇OC篇&iOS的主要框架

    iOS的主要框架         阅读目录 Foundation框架为所有的应用程序提供基本系统服务 UIKit框架提供创建基于触摸用户界面的类 Core Data框架管着理应用程序数据模型 Core ...

  5. iOS开发——网络编程OC篇&使用WebView构建HyBird应用

    使用WebView构建HyBird应用 HyBird是一种本地技术与Web相结合,能过实现跨平台的移动应用开发,最常用的一个框架:PhoneGap 一:首先,写好html代码 <!DOCTYPE ...

  6. iOS应用 跳转到系统的设置界面

    现在很多APP都需要获取用户权限,例如,允许调用位置信息,读取短信,拨打电话,开启WIFI,掉头摄像头等,用户不允许APP获取这些权限的时候.最好的用户体验是,直接跳转到系统设置界面,让用户自己设置. ...

  7. iOS开发——UI篇OC篇&UITableView简单封装

    UITableView简单封装 UITableView时iOS开发中使用最多也是最重的一个UI空间,其实在App Store里面的%80以上的应用都用到了这个控件,所以就给大家介绍一下,前面的文章中也 ...

  8. iOS开发——开发必备OC篇&彩票实战之精华讲解

    彩票实战之精华讲解 在这段时间自己研究并学习关于彩票项目开发的时候遇到各种坑,各种技术点以前或许之前用过但是却用起来不是那么熟悉,所以没遇到一个重点的地方我就会记录一下,希望不会再有下次. 本文主要讲 ...

  9. iOS开发——UI篇OC篇&UITableView多项选择

    UITableView多项选择 自定义cell和取到相应的cell就行了 TableViewCell.h #import <UIKit/UIKit.h> @interface TableV ...

随机推荐

  1. 解决ext时间插件在谷歌下变宽的BUG

    在做一个项目时候遇到EXT这么一个问题,现分享出解决问题的代码 Ext.override(Ext.menu.DateMenu, { render: function () { Ext.menu.Dat ...

  2. [WebService]之Schema

    schema入门 1:schema出现的目的是通过一个更加合理的方式来编写xml文件的限制(以XML语法的方式) 2:schema可以使用命名空间来支持多个名称相同的元素 3:schema可以很好的的 ...

  3. ResultMap

    Mybatis 数据库字段和对象属性的映射 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  4. 游戏模块分析总结(2)之UI、操作篇

    转自:http://www.gameres.com/309812.html 游戏模块分析总结(2)之UI.操作篇 发布者: wuye | 发布时间: 2014-12-12 15:03| 评论数: 0 ...

  5. C#实现office文档转换为PDF或xps的一些方法( 转)

    源博客http://blog.csdn.net/kable999/article/details/4786654 代码支持任意office格式 需要安装office 2007 还有一个office20 ...

  6. MacTerminal快捷键

    [MacTerminal快捷键] 在Mac系统中并没有Home.End等键,所以在使用时并不是特别的顺手,但是有几个键位组合可以使Terminal的操作更加灵活方便. 1.将光标移动到行首:ctrl ...

  7. WIFI接入Internet配置过程

    转载请注明出处:http://club.gizwits.com/thread-256-1-1.html AirLink模式GoKit2代配置路由SSID和密码方法如下:1.GoKit2上电2.长按Ke ...

  8. printf输出字符串的一些格式

    1. 原样输出字符串:    printf("%s", str); 2. 输出指定长度的字符串, 超长时不截断, 不足时右对齐:    printf("%Ns" ...

  9. [置顶] 我的设计模式学习笔记------>Java设计模式总概况

    设计模式的概念最早起源于建筑设计大师Alexander的<建筑的永恒方法>一书,尽管Alexander的著作是针对建筑领域的,但是他的观点实际上用用于所有的工程设计领域,其中也包括软件设计 ...

  10. How Tomcat Works(十二)

    tomcat容器通过一个称为Session管理器的组件来管理建立的Session对象,该组件由org.apache.catalina.Manager接口表示:Session管理器必须与一个Contex ...