构建轻量级的Table View注意事项[UIKit]
參考文章来自objcio站点
一、使用ChildViewController
将Table ViewController作为Child
View Controller加入到其它View Controller中。这种话父Controller能够管理其它View。同一时候你的TableView
Controller也能够继续管理自己的tableview。当然你须要通过一个delegate来使父Controller与子Controller进行通信
二、让Cell能够复用
对于复杂的Cell或者有事多种model对象须要同一个类型的cell表示时。那么我们能够考虑把cell复用。
三、把TableView的DataSource分解到单独的一个类中
UITableView中的DataSource大多都是对数组做的一些操作。能够把数组操作相关的代码移到单独的类中。
能够使用block或者delegate来设置一个cell。
补充
1、在分离时注意要把view层和Controller层的实现细节分开。delegate肯定清除一个view应该显示什么状态,可是它不应该了解怎样改动view的结构或者给某些subviews设置某些属性以获得正确地状态,全部的这些逻辑都应该封装到view的内部,然后对外提供一些简单的API
2、对于一个tableview中有多种类型的cell、datasource。我们就要通过推断cell的类型,然后派发相应的方法。
这点类似策略模式。
3、简单来讲,tableviewcontroller应该在model层和view层扮演一个协调者和解调者的决策,controller不应该关心明显属于view层和model层的任务。能够使用delegate、block、datasource使得tableviewcontroller变得更加小巧。
把业务逻辑和view的逻辑放到更加合适的地方。controller层里里外外的实现细节都封装成简单的API。
构建轻量级的Table View注意事项[UIKit]的更多相关文章
- Table View Programming Guide for iOS---(五)---Creating and Configuring a Table View
Creating and Configuring a Table View Your app must present a table view to users before it can mana ...
- Table View Programming Guide for iOS---(三)----Overview of the Table View API
Overview of the Table View API 表格视图API概述 The table view programming interface includes several UIKit ...
- iOS学习之Table View的简单使用
Table View简单描述: 在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View ...
- iphone dev 入门实例1:Use Storyboards to Build Table View
http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/ Creating Navig ...
- Table View Programming Guide for iOS---(六)---A Closer Look at Table View Cells
A Closer Look at Table View Cells A table view uses cell objects to draw its visible rows and then c ...
- Table View Programming Guide for iOS---(四)---Navigating a Data Hierarchy with Table Views
Navigating a Data Hierarchy with Table Views 导航数据表视图层次 A common use of table views—and one to which ...
- Table View Programming Guide for iOS---(二)----Table View Styles and Accessory Views
Table View Styles and Accessory Views 表格视图的风格以及辅助视图 Table views come in distinctive styles that are ...
- Table View Programming Guide for iOS---(一)---About Table Views in iOS Apps
About Table Views in iOS Apps Table views are versatile user interface objects frequently found in i ...
- ***iOS学习之Table View的简单使用和DEMO示例(共Plain普通+Grouped分组两种)
Table View简单描述: 在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View ...
随机推荐
- ListView数据动态刷新
在Android开发中用到ListView时,经常遇到要更改ListView内容的情形,比如删除或增加ListView中显示的条目,这里给大家提供一下思路:不论ListView要显示的对象是什么(如: ...
- C语言函数调用约定
在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数.但是,当高级语言被编译 ...
- linux 怎么使用一个c/c++库
linux 怎么使用一个c/c++库 使用一个库,库有动态和静态之分. 静态库只要能够编译通过,运行时就没有提示缺少这个库可能,因为把这个库就是这个使用者的一部分了.动态库.两部分.1 库信息的注册 ...
- C#整理
输入输出--数据类型--变量与常量--运算符表达式--语句(顺序.分支.循环)--数组--函数--结构体一.输入与输出.Console.ReadLine();Console.WriteLine();C ...
- JEECG开源团队招募新成员 2014年
JEECG开源团队招募新成员 2014年 截止日期:2014-06-01 JEECG开源项目 是一款基于代码生成器的微云高速开发平台.提供企业高速开发和採用微信实现移动应用的解决方式.J ...
- JavaScript 中的内存和性能、模拟事件(读书笔记思维导图)
由于事件处理程序可以为现代 Web 应用程序提供交互能力,因此许多开发人员会不分青红皂白地向页面中添加大量的处理程序.在 JavaScript 中,添加到页面上的事件处理程序数量将直接关系到页面的整体 ...
- A Game of Thrones(16) - Edard
“They’ve found her, my lord.” Ned rose quickly. “Our men or Lannister’s?” “It was Jory,” his steward ...
- 从零开始,使用python快速开发web站点(2)
书接上文.http://blog.csdn.net/i7788/article/details/10306595 首先是数据库的搭建,这里的django的数据模型搭建十分easy. no sql.ju ...
- cocos2dx游戏开发学习笔记3-lua面向对象分析
在lua中,能够通过元表来实现类.对象.继承等.与元表相关的方法有setmetatable().__index.getmetatable().__newindex. 详细什么是元表在这里就不细说了,网 ...
- Android OpenGL ES 应用(二) 纹理
上一篇讲了基础入门 OpenGL (一) ,这一次主要学习OpenGL 纹理基本学习总结 要是做复杂的OpenGL应用程序,一定会用到纹理技术.纹理说白了就是把图片或者视频图像绘制到OpenGL空间中 ...