IOS学习:UITableView使用详解3 分组表的简单使用

摘要:
调用allKeys方法将所有省份名称保存到省份数组中,以便于使用-tableView:tableViewnumberOfRowsInssection:section{NSString*str=[provisionobjectAtIndex:section};NSArray*temp=[dictionaryobjectForKey:str];return[tempcount];}此委派方法首先使用section查找要查找的组的下标,使用它查找省数组中的对应名称,然后根据名称查找对应的城市名称数组,并返回数组的长度-numberOfSectionsInTableView:tableView{return[provincecount;}返回分组的组数。

IOS学习:UITableView使用详解3 分组表的简单使用

使用分组表和使用普通表的方法差不多,他们的不同点有以下几点:

1.分组表的属性必须设置为Grouped的,而不是plain

2.分组表的数据源方法当中numberOfSectionsInTableView:返回分组的个数。

3.可以设置tableView:titleForHeaderInSection:返回每个分组的名称。

4.可以使用方法sectionIndexTitlesForTableView:建立一个分组表的右侧索引,便于查找。

以下通过一个案例进行分组表使用的讲解:

新建一个工程使用sigleview,名称为GroupTableView,然后讲一个表视图拖放到视图控制器里面,将表视图的名称设置为Gouped,结果如图所示:

IOS学习:UITableView使用详解3 分组表的简单使用第1张

在这里我们使用一个plist文件导入数据,里面显示了全国各个省以及每个省的城市,其结构如图所示:

IOS学习:UITableView使用详解3 分组表的简单使用第2张

在头文件当中添加数据源和表视图委托,使用一个字典和一个数组,

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>

@property(copy,nonatomic)NSDictionary *dictionary;

@propertyNSArray *province;

@end

加载视图后,读入数据源,因此在viewDidLoad方法当中添加一下代码:

NSBundle *bundle=[NSBundlemainBundle];

NSURL *plistURL=[bundle URLForResource:@"provinceCities"withExtension:@"plist"];

dictionary =[NSDictionarydictionaryWithContentsOfURL:plistURL];

province = [dictionaryallKeys];

将数据从plist文件当中读入字典结构,它的key就是各个省份的名称,省份下的城市的名称组成的数组就是key的value。

调用allKeys方法将所有的省份名称存入province数组,便于使用。

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

    NSString *str=[provinceobjectAtIndex:section];

    NSArray *temp=[dictionaryobjectForKey:str];

    return [temp count];

}

该委托方法先使用section查找出要找的组的下标,使用它在province数组当中找出相应的名称,然后根据这个名称找出对应的城市名称数组,返回该数组的长度。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    return [provincecount];

}

返回分组的组的数目。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    staticNSString *identifier=@"identifier";

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:identifier];

    if(cell==nil)

    {

        cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:identifier];

    }

    int row=[indexPath row];

    int section=[indexPath section];

    NSString *pro=[provinceobjectAtIndex:section];

    cell.textLabel.text=[[dictionaryobjectForKey:pro] objectAtIndex:row];

    return cell;

}

该方法返回各个单元格。

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

{

    return [provinceobjectAtIndex:section];

}

该方法返回每个分组的标题

-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

{

    returnprovince;

}

返回用于建立索引的数组。

效果如图所示

IOS学习:UITableView使用详解3 分组表的简单使用第3张

免责声明:文章转载自《IOS学习:UITableView使用详解3 分组表的简单使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇攻防世界-crypto-banana-princess(ROT13加解密、pdftohtml)Java学习之路-Spring的HttpInvoker学习下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

简单的ld链接脚本学习

一、 链接脚本的整体认识 什么是链接文件呢?作用是什么呢? 当编写了多个C文件时,我们将他们编译链接成一个可执行的文件,此时就需要用到链接脚本文件(ld)。ld脚本主要功能就是:将多个目标文件(.o)和库文件(.a)链接成一个可执行的文件。 链接脚本文件主要有什么内容呢? 为了规范,我们分为三个部分: 链接配置(可有可无) 如一些符号变量的定义、入口地...

iOS 杂笔-如何解决tableview显示错乱问题

解决自定义Tableviewcell显示错乱问题 要是要解决这个问题,就需要用到UITableviewCell的prepareForReuse方法 cell被重用如何提前知道? 重写cell的prepareForReuse 官方头文件中有说明.当前已经被分配的cell如果被重用了(通常是滚动出屏幕外了),会调用cell的prepareForReuse通...

关于jQuery UI 使用心得及技巧

最近项目中使用了一些插件来做页面,这里把jQuery UI的使用分享出来,希望 对新手有帮助。文章结尾附源码下载。 1 jQuery UI 有时你仅仅是为了实现一个渐变的动画效果而不得不把javascrip 重新学习一遍然后书写大量代码。直到jQuery的出现,让开发人员从一大堆繁琐的js代码中解脱,取而代之几行jQuery代码。现今,jQuery无疑已...

iOS UIKit:TableView之编辑模式(3)

一般table view有编辑模式和正常模式,当table view进入编辑模式时,会在row的左边显示编辑和重排控件,如图 42所示的编辑模式时的控件布局;左边的editing control有表 61的两种图标。 表 61 table view编辑控件 图标 描述 Deletion控件 Insertion控件 若ta...

latex 页眉设置 [转]

//注意加粗部分\documentclass{article} \usepackage{CJK}\usepackage{fancyhdr} \title{\textbf{Title}} \begin{document} \begin{CJK*}{GBK}{song} \pagestyle{fancy} \lhead{中文页眉} \rhea...

TableView之表头、表尾,区头、区尾!

一、UITableView的UITableViewStyle   样式分为UITableViewStylePlain和UITableViewStyleGrouped两种;   plain样式下区头和区尾是悬浮的(即拖动表的时候区头和区尾不会消失,一直显示在界面上);   grouped样式区头和区尾是随表一起滑动的。静态的tableview需要分区时(XI...