首页 > 学院 > 开发设计 > 正文

iOS.UIKit.15.UITableView--Index

2019-11-14 20:26:24
字体:
来源:转载
供稿:网友

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

图01

2、team_dictionary.plist

<?xml version="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>@interface CQ24ViewController : UITableViewController<UISearchBarDelegate>// 表数据@property (strong,nonatomic) NSDictionary *dictData;// 表数据分组名集合@property (strong,nonatomic) NSArray *listGroupname;@end

4、.m

 

#import "CQ24ViewController.h"@interface CQ24ViewController ()@end@implementation CQ24ViewController- (void)viewDidLoad{    [super viewDidLoad];        NSBundle *mainBundle = [NSBundle mainBundle];    NSString *plistPath = [mainBundle pathForResource:@"team_dictionary" ofType:@"plist"];        // 1、初始化表格数据dictData    self.dictData = [[NSDictionary alloc] initWithContentsOfFile:plistPath];    // 2、初始化分组名称,排序    NSArray *tempList = [self.dictData allKeys];    self.listGroupname = [tempList sortedArrayUsingSelector:@selector(compare:)];    }- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];}#pragma mark 返回分组数- (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];    }#pragma mark 填充每个节的Cell- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    // 1、加载一个cell    static NSString *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中的text    cell.textLabel.text = [listTeams objectAtIndex:row];    return cell;}#pragma mark 节数- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{    return self.listGroupname.count;}#pragma mark 设置节title-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{    NSString *groupName = [self.listGroupname objectAtIndex:section];    return groupName;}#pragma mark 索引- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{    // 1、存在索引的集合    NSMutableArray *listTitles = [[NSMutableArray alloc] initWithCapacity:[self.listGroupname count]];    // 2、初始化索引集合    for (NSString *item in self.listGroupname) {        NSString *title = [item substringToIndex:1];        [listTitles addObject:title];    }    return listTitles;}@end

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表