@interface FZAddressBookListViewController () <UITableViewDelegate,UITableViewDataSource>
@property(nonatomic,strong)UITableView *tableView;
@property(nonatomic,strong)NSMutableArray *dataArray; //請求到的數(shù)據(jù)
@property(nonatomic,strong)NSMutableArray *indexTitles; //索引title
@property(nonatomic,strong)NSMutableDictionary *groupListDic; //索引對(duì)應(yīng)數(shù)據(jù)
@end
@implementation FZAddressBookListViewController
{
MBProgressHUD *hud;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self configUI];
[self getListData];
}
-(void)configUI{
_tableView = [[UITableView alloc]init];
_tableView.sectionIndexColor = [UIColor blackColor];
_tableView.tableFooterView=[[UIView alloc]init];
_tableView.sectionIndexBackgroundColor=[UIColor clearColor];
_tableView.delegate=self;
_tableView.dataSource=self;
[self.view addSubview:_tableView];
[_tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.view);
make.left.mas_equalTo(self.view);
make.size.mas_equalTo(self.view);
}];
[MBProgressHUD showMessage:@"" toView:self.view];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 70;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (self.indexTitles.count > 0) {
NSString *key=self.indexTitles[section];
NSMutableArray *keyArray = [self.groupListDic objectForKey:key];
return keyArray.count;
}
return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
FZAddressBookTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"celladd"];
if (!cell) {
cell = [[FZAddressBookTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"celladd"];
}
if (self.dataArray.count > 0) {
NSString *key=self.indexTitles[indexPath.section];
NSMutableArray *keyArray = [self.groupListDic objectForKey:key];
cell.model=(FZAddressUserModel *)[keyArray objectAtIndex:indexPath.row];
}
return cell;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return self.indexTitles.count;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 25;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *bgView =[[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 25)];
bgView.backgroundColor=[UIColor colorWithHexString:@"EAEAEA"];
FZLabel *lab =[[FZLabel alloc]initWithTextColorHex:@"666666" font:13 textAlignment:NSTextAlignmentLeft];
[bgView addSubview:lab];
lab.frame=CGRectMake(20, 0, 90, 25);
if (self.indexTitles.count > 0) {
lab.text =(NSString *) self.indexTitles[section];
}
return bgView;
}
- (nullable NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView; {
if (self.indexTitles.count > 0) {
return self.indexTitles;
}
return nil;
}
-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString*)title atIndex:(NSInteger)index{
NSLog(@"title,index %@,%ld",title,index);
return index;
}
-(void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
for (UIView *view in [tableView subviews]) {
if ([view isKindOfClass:[NSClassFromString(@"UITableViewIndex") class]]) {
// 設(shè)置字體大小
[view setValue:[UIFont systemFontOfSize:15.0 weight:UIFontWeightRegular] forKey:@"_font"];
[view setValue:[UIColor colorWithHexString:@"1E90FF"] forKey:@"_indexColor"];
//設(shè)置view的大小
view.bounds = CGRectMake(2, 0, 30, 30);
//單單設(shè)置其中一個(gè)是無效的
}
}
}
#pragma mark --- 數(shù)據(jù)請求
-(void)getListData{
[FZRequestTools getStudentsByTeacherId:[FZUserInfo sharedUtil].colUid handler:^(BOOL success, NSString *msg, id response) {
if (success) {
NSArray *responseArray=[response objectForKey:@"response"];
NSMutableArray *modelArray=[[NSMutableArray alloc]init];
NSMutableArray *allFirstLetters=[[NSMutableArray alloc]init];
for (NSDictionary *dic in responseArray) {
FZAddressUserModel *model=[FZAddressUserModel mj_objectWithKeyValues:dic];
[modelArray addObject:model];
NSString *firstLetter = [self firstCharactor:model.userName];
[allFirstLetters addObject:firstLetter];
}
allFirstLetters = [allFirstLetters valueForKeyPath:@"@distinctUnionOfObjects.self"];
self.indexTitles= [NSMutableArray arrayWithArray:[allFirstLetters sortedArrayUsingSelector:@selector(compare:)]];
[self.dataArray addObjectsFromArray:modelArray];
[self sortedResult];
[self->_tableView reloadData];
[MBProgressHUD hideHUDForView:self.view];
}else{
}
}];
}
#pragma mark -- suoyin
-(void)sortedResult{
for (NSString *keyLetter in self.indexTitles) {
NSMutableArray *tempArray =[[NSMutableArray alloc]init];
[self.groupListDic setObject:tempArray forKey:keyLetter];
}
for (NSString *letter in self.indexTitles) {
NSMutableArray *tempkArray =[[NSMutableArray alloc]init];
tempkArray = [self.groupListDic objectForKey:letter];
for (FZAddressUserModel *uModel in self.dataArray) {
if ([[self firstCharactor:uModel.userName] isEqualToString:letter]) {
[tempkArray addObject:uModel];
}
}
[self.groupListDic setObject:tempkArray forKey:letter];
}
}
- (NSString *)firstCharactor:(NSString *)aString
{
//轉(zhuǎn)成了可變字符串
NSMutableString *str = [NSMutableString stringWithString:aString];
CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);//先轉(zhuǎn)換為帶聲調(diào)的拼音
CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO);//再轉(zhuǎn)換為不帶聲調(diào)的拼音
NSString *pinYin = [str capitalizedString];//轉(zhuǎn)化為大寫拼音
//獲取并返回首字母
return [pinYin substringToIndex:1];
}
-(NSMutableArray *)dataArray{
if (!_dataArray) {
_dataArray=[[NSMutableArray alloc]init];
}
return _dataArray;
}
-(NSMutableArray *)indexTitles{
if (!_indexTitles) {
_indexTitles=[[NSMutableArray alloc]init];
}
return _indexTitles;
}
-(NSMutableDictionary *)groupListDic{
if (!_groupListDic) {
_groupListDic=[[NSMutableDictionary alloc]init];
}
return _groupListDic;
}
@end
tableView 添加索引和根據(jù)索引分類
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門闷沥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咐容,你說我怎么就攤上這事÷煳” “怎么了戳粒?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長虫啥。 經(jīng)常有香客問我蔚约,道長,這世上最難降的妖魔是什么涂籽? 我笑而不...
- 正文 為了忘掉前任苹祟,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘树枫。我一直安慰自己直焙,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布砂轻。 她就那樣靜靜地躺著奔誓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搔涝。 梳的紋絲不亂的頭發(fā)上厨喂,一...
- 文/蒼蘭香墨 我猛地睜開眼故响,長吁一口氣:“原來是場噩夢啊……” “哼傀广!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起彩届,我...
- 序言:老撾萬榮一對(duì)情侶失蹤伪冰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后樟蠕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贮聂,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年寨辩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吓懈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站梢杭,受9級(jí)特大地震影響温兼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜武契,卻給世界環(huán)境...
- 文/蒙蒙 一募判、第九天 我趴在偏房一處隱蔽的房頂上張望荡含。 院中可真熱鬧,春花似錦届垫、人聲如沸释液。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽均澳。三九已至,卻和暖如春符衔,著一層夾襖步出監(jiān)牢的瞬間找前,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓形帮,卻偏偏與公主長得像槽惫,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辩撑,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 【蝴蝶效應(yīng)】 蝴蝶效應(yīng):上個(gè)世紀(jì)70年代棕叫,美國一個(gè)名叫洛倫茲的氣象學(xué)家在解釋空氣系統(tǒng)理論時(shí)說林螃,亞馬遜雨林一只蝴蝶...
- 在tableView上添加索引后索引可能會(huì)遮蓋 搜索條或headview 解決辦法:iOS tableView 添...
- 小學(xué)語文修改病句的方法 修改病句是小學(xué)語文考試中常見的題型打掘,在修改病句之前华畏,我們應(yīng)該清晰的了解有哪些病句現(xiàn)象,下面...
- 網(wǎng)絡(luò)初級(jí)13期 堅(jiān)持分享74天 今天女兒跟我說尊蚁,媽媽那一會(huì)兒我感覺你很關(guān)心我亡笑,我說什么時(shí)候,她說就是我朝妹妹...