IOS UITableView分组与索引分区实例
2015-08-25 21:58 甘雨路 阅读(449) 评论(0) 编辑 收藏 举报1 #import <UIKit/UIKit.h> 2 3 @interface AppDelegate : UIResponder <UIApplicationDelegate> 4 5 @property (strong, nonatomic) UIWindow *window; 6 7 8 @end
1 #import "AppDelegate.h" 2 #import "RootViewController.h" 3 @interface AppDelegate () 4 5 @end 6 7 @implementation AppDelegate 8 9 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 11 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 12 // Override point for customization after application launch. 13 self.window.backgroundColor = [UIColor whiteColor]; 14 15 RootViewController *root = [[RootViewController alloc] init]; 16 UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:root]; 17 self.window.rootViewController = navi; 18 19 20 [self.window makeKeyAndVisible]; 21 return YES; 22 } 23 24 25 @end
1 #import <UIKit/UIKit.h> 2 3 @interface RootViewController : UIViewController 4 5 @end
1 #import "RootViewController.h" 2 3 @interface RootViewController ()<UITableViewDataSource,UITableViewDelegate> 4 { 5 UITableView *_tableView; 6 NSMutableDictionary *dataDic; 7 } 8 @end 9 10 @implementation RootViewController 11 12 - (void)loadView 13 { 14 [super loadView]; 15 _tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] bounds] style:UITableViewStyleGrouped]; 16 _tableView.delegate = self; 17 _tableView.dataSource = self; 18 [self.view addSubview:_tableView]; 19 } 20 21 - (void)viewDidLoad { 22 [super viewDidLoad]; 23 NSArray *A = [NSArray arrayWithObjects:@"app",@"apple",@"alex",@"alert",@"alright",@"at",@"addic",@"awake",@"action",@"active", nil]; 24 NSArray *B = [NSArray arrayWithObjects:@"belance",@"beyond",@"bell",@"bill",@"bet",@"bety",@"bright",@"beaty",@"beat",@"bite",@"bit",@"bake",@"blake",@"basket",@"basketball",@"ball",@"black",@"blue", nil]; 25 NSArray *C = [NSArray arrayWithObjects:@"cake",@"cat",@"cap",@"cook",@"cooki",@"cate",@"cell",@"certain",@"city",@"clabe",@"clab",@"copy",@"cry", nil]; 26 NSArray *D = [NSArray arrayWithObjects:@"dirty",@"del",@"directly",@"dry",@"dull",@"delly",@"dute", nil]; 27 NSArray *E = [NSArray arrayWithObjects:@"elphance",@"every",@"else",@"emperty", nil]; 28 NSArray *F = [NSArray arrayWithObjects:@"fly",@"flash",@"flag",@"fate",@"felt",@"fill",@"fell",@"fall",@"font",@"fake",@"flour",@"ferver",@"fetech", nil]; 29 NSArray *G = [NSArray arrayWithObjects:@"girl",@"gipe",@"grap",@"gray",@"gay",@"gita",@"git",@"get",@"great",@"glass",@"glasses",@"good",@"google", nil]; 30 dataDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:A,@"A",B,@"B",C,@"C",D,@"D",E,@"E",F,@"F",G,@"G", nil]; 31 } 32 33 #pragma mark -UITableView Delegate- 34 35 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView 36 { 37 return [[dataDic allKeys] sortedArrayUsingSelector:@selector(compare:)]; 38 } 39 40 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 41 { 42 return [dataDic allKeys].count; 43 } 44 45 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 46 { 47 NSArray *keys = [[dataDic allKeys] sortedArrayUsingSelector:@selector(compare:)]; 48 NSString *key = keys[section]; 49 NSArray *array = dataDic[key]; 50 return [array count]; 51 } 52 53 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 54 { 55 NSArray *keys = [[dataDic allKeys] sortedArrayUsingSelector:@selector(compare:)]; 56 NSString *key = keys[section]; 57 return key; 58 } 59 60 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 61 { 62 static NSString *identify = @"cell"; 63 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identify]; 64 if (cell == nil) { 65 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identify]; 66 } 67 NSArray *keys = [[dataDic allKeys] sortedArrayUsingSelector:@selector(compare:)]; 68 NSString *key = keys[indexPath.section]; 69 NSArray *array = dataDic[key]; 70 NSString *content = array[indexPath.row]; 71 cell.textLabel.text = content; 72 return cell; 73 } 74 75 - (void)didReceiveMemoryWarning { 76 [super didReceiveMemoryWarning]; 77 // Dispose of any resources that can be recreated. 78 } 79 80 81 @end