iOS.UIKit.15.UITableView--Index

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1、案例介绍:具备索引功能的分节表视图,如图01

图01

2、team_dictionary.plist

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC"-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PRopertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>A组</key>

<array>

<string>A1-南非</string>

<string>A2-墨西哥</string>

<string>A3-乌拉圭</string>

<string>A4-法国</string>

</array>

<key>B组</key>

<array>

<string>B1-阿根廷</string>

<string>B2-尼日利亚</string>

<string>B3-韩国</string>

<string>B4-希腊</string>

</array>

<key>C组</key>

<array>

<string>C1-英格兰</string>

<string>C2-美国</string>

<string>C3-阿尔及利亚</string>

<string>C4-斯洛文尼亚</string>

</array>

<key>D组</key>

<array>

<string>D1-德国</string>

<string>D2-澳大利亚</string>

<string>D3-塞尔维亚</string>

<string>D4-加纳</string>

</array>

<key>E组</key>

<array>

<string>E1-荷兰</string>

<string>E2-丹麦</string>

<string>E3-日本</string>

<string>E4-喀麦隆</string>

</array>

<key>F组</key>

<array>

<string>F1-意大利</string>

<string>F2-巴拉圭</string>

<string>F3-斯洛伐克</string>

<string>F4-新西兰</string>

</array>

<key>G组</key>

<array>

<string>G1-巴西</string>

<string>G2-朝鲜</string>

<string>G3-科特迪瓦</string>

<string>G4-葡萄牙</string>

</array>

<key>H组</key>

<array>

<string>H1-西班牙</string>

<string>H2-瑞士</string>

<string>H3-洪都拉斯</string>

<string>H4-智利</string>

</array>

</dict>

</plist>

3、.h

#import<UIKit/UIKit.h>@interfaceCQ24ViewController : UITableViewController<UISearchBarDelegate>//表数据@property (strong,nonatomic) NSDictionary *dictData;//表数据分组名集合@property (strong,nonatomic) NSArray *listGroupname;@end

4、.m

#import"CQ24ViewController.h"@interfaceCQ24ViewController ()@end@implementationCQ24ViewController- (void)viewDidLoad

{

[super viewDidLoad];

NSBundle*mainBundle =[NSBundle mainBundle];

NSString*plistPath = [mainBundle pathForResource:@"team_dictionary"ofType:@"plist"];//1、初始化表格数据dictDataself.dictData =[[NSDictionary alloc] initWithContentsOfFile:plistPath];//2、初始化分组名称,排序NSArray *tempList =[self.dictData allKeys];

self.listGroupname=[tempList sortedArrayUsingSelector:@selector(compare:)];

}- (void)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning];

}#pragmamark 返回分组数

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

{//1、获取分组名称NSString *groupName =[self.listGroupname objectAtIndex:section];//2、将分组名称作为key,从字典中取出分组数据NSArray *listTeams =[self.dictData objectForKey:groupName];return[listTeams count];

}#pragmamark 填充每个节的Cell

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

{//1、加载一个cellstaticNSString *CellIdentifier =@"CellIdentifier";

UITableViewCell*cell =[tableView dequeueReusableCellWithIdentifier:CellIdentifier];if(cell ==nil) {

cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

}//2、获取选择的节NSUInteger section =[indexPath section];//3、获取节名称NSString *groupName =[self.listGroupname objectAtIndex:section];//4、获取节数据NSArray *listTeams =[self.dictData objectForKey:groupName];//5、获取选中节中的行索引NSUInteger row =[indexPath row];//6、设置cell中的textcell.textLabel.text =[listTeams objectAtIndex:row];returncell;

}#pragmamark 节数

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{returnself.listGroupname.count;

}#pragmamark 设置节title

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

{

NSString*groupName =[self.listGroupname objectAtIndex:section];returngroupName;

}#pragmamark 索引

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

{//1、存在索引的集合NSMutableArray *listTitles =[[NSMutableArray alloc] initWithCapacity:[self.listGroupname count]];//2、初始化索引集合for(NSString *iteminself.listGroupname) {

NSString*title = [item substringToIndex:1];

[listTitles addObject:title];

}returnlistTitles;

}@end

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航