tableview 侧边 index
来源:互联网 发布:英伦学院风 女 知乎 编辑:程序博客网 时间:2024/06/06 01:04
#import "ViewController.h"@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>@property (nonatomic, strong) NSMutableArray *userArray; //数据源数组@property (strong,nonatomic) NSDictionary *dicArr;@property (nonatomic, strong) UITableView *tableView;//UITableView索引搜索工具@property (nonatomic,strong) NSMutableArray *keys;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; [self configureSections]; CGRect frame = self.view.bounds; self.tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain]; _tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; _tableView.dataSource = self; _tableView.delegate = self; [self.view addSubview:_tableView]; // Do any additional setup after loading the view, typically from a nib.}- (NSString *)firstCharactor:(NSString *)aString{ //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:aString]; //先转换为带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO); //再转换为不带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO); //转化为大写拼音 NSString *pinYin = [str capitalizedString]; //获取并返回首字母 return [pinYin substringToIndex:1];}//配置分组信息- (void)configureSections { //初始化测试数据 self.dicArr = [[NSMutableDictionary alloc] init]; _userArray = [NSMutableArray arrayWithObjects:@"一小",@"二小",@"三小",@"四小",@"五小",@"六小",@"二中",@"三中",@"四中",@"八中",@"一中",@"四高",@"五高",@"一高", nil]; for (NSString *name in _userArray) { NSString * A= [self firstCharactor:name]; NSMutableArray *mArr=[self.dicArr objectForKey:A]; if (!mArr) { mArr = [[NSMutableArray alloc]init]; } [mArr addObject:name]; [self.dicArr setValue:mArr forKey:A]; } NSArray *keysArray = [self.dicArr allKeys]; NSArray *resultArray = [keysArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { return [obj1 compare:obj2 options:NSNumericSearch]; }]; self.keys= [[NSMutableArray alloc]initWithArray: resultArray];}#pragma mark -- delegate- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // The number of sections is the same as the number of titles in the collation. return [self.keys count];}//设置每个Section下面的cell数- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // The number of time zones in the section is the count of the array associated with the section in the sections array. return [[self.dicArr objectForKey:[self.keys objectAtIndex:section]] count];}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } cell.textLabel.text = [[self.dicArr objectForKey:[self.keys objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row]; return cell;}- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; NSLog(@"%@", [[self.dicArr objectForKey:[self.keys objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row]);}/* * 跟section有关的设定 *///设置section的Header- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { return [self.keys objectAtIndex:section];}//设置索引标题- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { return self.keys;}//索引点击事件- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index { [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:index] atScrollPosition:UITableViewScrollPositionTop animated:YES]; return index;}@end
阅读全文
1 0
- tableview 侧边 index
- tableView侧边栏索引
- 获取当前Tableview选中行的index
- iOS编程学习二十(TableView Section和Index)
- TableView
- TableView
- tableview
- tableview
- tableview
- TableView
- TABLEVIEW
- tableView
- tableView
- TableView
- tableview
- tableview
- tableView
- tableView
- Unity延时功能的几种实现
- 数据倾斜问题和滑动窗口uv统计问题
- Hadoop中hdfs的架构解析
- Create-react-app+Antd+Less配置
- java枚举类型的使用
- tableview 侧边 index
- 15算法课程 263. Ugly Number
- PHP实现大流量下抢购方案
- 人脸识别博客整理及学习建议
- 张逸:限界上下文的边界
- 九宫格解锁,可用,简便
- 一个Php菜鸟的TCP/IP协议学习总结(概述)
- 爬虫之pyquery 解析html
- 网络是可穿戴设备发展根本力量