(3) iphone 开发 从应用程序看UITableView的:分组,分区,索引,工作原理及其变换法则,plist文件数据定义规则
来源:互联网 发布:linux打开文件管理器 编辑:程序博客网 时间:2024/06/08 05:58
UITableView 与其他相关组件一样,视图控制器须实现:数据源(UITableViewDataSource) ,委托(UITableViewDelegate)两个协议,(然后实现其方法) 。这样当视图控制器成为UITableView的数据源与委托时,就能为其工作(调用被实现的方法)。
一:创建UITableview,默认是无格式表。
1)接下来就是创建输出口(使视图控制器得到界面上组建的实例,这里就是UITableView),连接委托(delegate),数据源(datasource),关于他们的具体解释上一篇日志已经提到,这里不做过多介绍。
2)创建一个plist文件用于定义数据(为视图显示提供数据):点击new file----->resource----->property list
3)在plist文件中定义数据:
4)添加数据规则:
5)查看数据代码:
6)由此可见xcode的功能还是很好的,只要我们在界面上直观的点击加号,减号,添加数据和数据类型,在后台就会自动生成代码格式,很方便。 ok前期的数据工作就准备好了!
二:控制器.h文件遵循UITableViewDataSource,UITableViewDelegate两个协议,然后.m文件实现其方法(为视图显示做工作)。
样例代码:
1)MyTableViewGroupController.h文件中:
2)
1. MyTableViewGroupController.m文件中:在viewDidLoad方法中初始化数据(从plist文件中获得数据)
2. 实现 协议UITableViewDataSource的五个方法使数据按照操作显示在屏幕上,这里并没有实现协议UITableViewDelegate的方法。
#pragma mark-#pragma mark Table View Group-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ //返回(向系统发送)分区个数,在这里有多少键就会有多少分区。 return [self.MyKey count];}//所在分区所占的行数。-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ //获取当前分区所对应的键(key)。在这里键就是分区的标示。 NSString *key=[self.MyKey objectAtIndex:section]; //获取键所对应的值(数组)。 NSArray *nameSec=[self.resource objectForKey:key]; //返回所在分区所占多少行。 return [nameSec count];}//向屏幕显示。-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ //获得所在分区的行数 NSInteger row=[indexPath row]; //获得分区值 NSInteger section=[indexPath section]; //利用分区获得键值 NSString *key=[self.MyKey objectAtIndex:section]; //利用键值获得其所对应的值 NSArray *MySectionArr=[self.resource objectForKey:key]; //定义标记,用于标记单元格 static NSString *SectionTableMyTag=@"dong"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:SectionTableMyTag]; //如果当前cell没被实例(程序一开始就会运行下面的循环,直到屏幕上所显示的单元格格全被实例化了为止,没有显示在屏幕上的单元格将会根据定义好的标记去寻找可以重用的空间来存放自己的值) if (cell==nil) { cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SectionTableMyTag]; } cell.textLabel.text=[MySectionArr objectAtIndex:row]; return cell; }//把每个分区打上标记key-(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ NSString *key=[self.MyKey objectAtIndex:section]; return key;}//在单元格最右放添加索引-(NSArray*)sectionIndexTitlesForTableView:(UITableView *)tableView{ return self.MyKey;}
3)看运行结果:
很明显这是一个分区索引表。如果只想要无格式表,就是不用写numberOfSectionsInTableView返回分区数,这个方法。同理如果想要除去索引,只需不写其方法sectionIndexTitlesForTableView即可。
4)直接改为分组表
可见既有分组又有索引,但苹果不建议这样写,可能是出于对程序优化的考虑。
- (3) iphone 开发 从应用程序看UITableView的:分组,分区,索引,工作原理及其变换法则,plist文件数据定义规则
- iphone开发之表格组件UITableView的使用(三)通过加载plist文件字典转模型方式展示分组数据
- Iphone开发(十一)从plist文件读取列表数据并添加索引
- Iphone开发(十一)从plist文件读取列表数据并添加索引
- Iphone开发(十一)从plist文件读取列表数据并添加索引
- Iphone开发(十一)从plist文件读取列表数据并添加索引
- iphone开发之表格组件UITableView的使用(六)通过加载plist文件展示汽车品牌并添加索引查找
- Iphone开发从plist文件读取列表数据并添加索引
- iphone开发之表格组件UITableView的使用(四) 通过加载plist文件展示单组数据
- iPhone开发之UITableView的小试牛刀 利用MVC模式从plist文件读取数据并字典转模型的格式实现
- IOS UITableView分组与索引分区实例
- IOS UITableView分组与索引分区实例
- 使用 UITableView 创建表格应用——从plist文件加载并显示数据(转)
- iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, CoreData, Sqlite, Plist 文件)
- iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, CoreData, Sqlite, Plist 文件)
- iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, CoreData, Sqlite, Plist 文件)
- iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, Keychain,CoreData, Sqlite, Plist 文件)
- 从plist文件读取列表数据并添加索引
- ajax同步和异步比较形象的说明(如果我说得不对,请您更正)
- Android 用户界面---定制组件(Custom Components)(二)
- EDM案例分享——HomeSense的EDM视觉品质与营销效果平衡之道
- eclipse无法切换中文输入法
- 内存对齐分配策略(含位域模式)
- (3) iphone 开发 从应用程序看UITableView的:分组,分区,索引,工作原理及其变换法则,plist文件数据定义规则
- 我决定开始写博客了
- 数据乘积
- jquery使用toggleClass
- Ubuntu下设置VNCServer
- SQL Server 2005之PIVOT/UNPIVOT行列转换
- while循环退出
- Matlab Code = 全变分图像去噪方法(Total Variation-based Image Denoising)
- oracle中实现主键的自动增加