UITableViewController-分区和索引
来源:互联网 发布:mac 桌面显示便签 编辑:程序博客网 时间:2024/05/14 16:07
//// MyIndexTabelViewController.h// AppUI组件学习//// Created by 麦子 on 15/6/23.// Copyright (c) 2015年 麦子. All rights reserved.//#import <UIKit/UIKit.h>@interface MyIndexTabelViewController : UITableViewController<UISearchBarDelegate>@property(nonatomic,strong) NSMutableArray *array;@property(nonatomic,strong) NSMutableDictionary *dic;@property(nonatomic,strong) NSMutableArray *searchArray;@property(nonatomic,strong) NSMutableArray *tempArray;@end
//// MyIndexTabelViewController.m// AppUI组件学习//// Created by 麦子 on 15/6/23.// Copyright (c) 2015年 麦子. All rights reserved.//#import "MyIndexTabelViewController.h"@implementation MyIndexTabelViewController{ BOOL searchFlag;}@synthesize array;@synthesize dic;@synthesize searchArray;@synthesize tempArray;- (void)viewDidLoad{ [super viewDidLoad]; self.title = @"分区和索引"; [self createView];}- (void)createView{ // 获取plist的文件 NSString *path = [[NSBundle mainBundle] pathForResource:@"NbaPlayer" ofType:@"plist"]; self.dic = [NSMutableDictionary dictionaryWithContentsOfFile:path]; self.array = (NSMutableArray *)[[self.dic allKeys]sortedArrayUsingSelector:@selector(compare:)]; // 组装数据 self.searchArray = [[NSMutableArray alloc] init]; NSArray *dataArray = [self.dic allValues]; for (NSArray *playerNameArray in dataArray) { for (NSString *str in playerNameArray) { [self.searchArray addObject:str]; } } self.tempArray = self.searchArray; // 下拉控件 self.refreshControl = [[UIRefreshControl alloc] init]; [self.refreshControl addTarget:self action:@selector(refreshEvent) forControlEvents:UIControlEventValueChanged]; self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"努力加载中....."]; CGFloat width = [[UIScreen mainScreen] bounds].size.width; // 搜索栏 UISearchBar *search = [[UISearchBar alloc] init]; search.frame = CGRectMake(0,0,width,40); // 关掉拼音检查 search.autocorrectionType = UITextAutocorrectionTypeYes; // 取消首字母大写 search.autocapitalizationType = UITextAutocapitalizationTypeNone; // 显示取消按钮 search.showsCancelButton = NO; search.placeholder = @"请输入你要查找的内容"; // 代理处理 search.delegate = self; self.tableView.tableHeaderView = search; }// 监听下拉- (void)refreshEvent{ self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"加载成功....."]; [self.refreshControl endRefreshing]; // 结束刷新 [self.tableView reloadData]; // 重新加载数据 }// 分区- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ if (searchFlag) { return 1; } return self.array.count;}// 一区有几行- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ if (searchFlag) { return self.searchArray.count; } NSString *key = [self.array objectAtIndex:section]; NSArray *childArray = [self.dic objectForKey:key]; return childArray.count;}// 单元头- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ if (searchFlag) { return @"查询结果"; } return self.array[section];}//单元格- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myCell"]; } if (searchFlag) { cell.textLabel.text = self.searchArray[indexPath.row]; searchFlag = false; return cell; } NSString *key = [self.array objectAtIndex:indexPath.section];// 获取区 NSArray *dataArray = [[self.dic objectForKey:key]sortedArrayUsingSelector:@selector(compare:)]; // 默认排序 cell.textLabel.text = dataArray[indexPath.row]; return cell;}// 添加索引- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{ if (searchFlag) { return nil; } return self.array;}// 搜索按钮--搜索- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{// UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"搜索栏" message:@"测试搜索点击按钮" delegate:self cancelButtonTitle:@"关闭" otherButtonTitles:@"已经看到", nil];// [alert show]; searchFlag = true; self.searchArray = self.tempArray; NSString *searchText = searchBar.text; NSMutableArray *findArray = [[NSMutableArray alloc] init]; for (NSString *str in self.searchArray) { if ([[str uppercaseString] containsString:searchText] || [[str lowercaseString] containsString:searchText]) { [findArray addObject:str]; } } self.searchArray = findArray; [self.tableView reloadData];}// 开始编辑的时候- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{ searchBar.showsCancelButton = YES; }// 点击取消按钮的- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{ // 去掉聚焦 [searchBar resignFirstResponder]; searchBar.showsCancelButton = NO; self.searchArray = self.tempArray; searchFlag = false; [self.tableView reloadData];}@end
0 0
- UITableViewController-分区和索引
- mysql-索引和分区
- 表分区和分区索引
- 分组分区和索引分区
- 分区索引和全局索引
- 分区表和分区索引
- 分区表和分区索引
- 分区表和分区索引
- Oracle表分区和索引分区汇总
- Oracle表分区和索引分区汇总
- Oracle表分区和索引分区汇总
- Oracle表分区和索引分区
- Oracle表分区和索引分区汇总
- Oracle表分区和索引分区汇总
- Oracle表分区和索引分区汇总
- 数据库-分区索引
- 什么是分区表和分区索引
- 分区表、分区索引和全局索引
- 软件列表
- Java基础:字符串
- 抽象工厂模式
- 谈谈Ext JS的组件——容器与布局
- 对象、对象数组、JSON、JSON数组的相关操作
- UITableViewController-分区和索引
- JSP&Servlet学习笔记
- leetcode 226 Invert Binary Tree 翻转二叉树
- leetcode 8 String to Integer (atoi)
- 黑马程序员--oc自定义构造方法
- 获取自然日之差
- Nearest Numbers
- Web开发模板
- Java集合框架总结