iOS 一個(gè)簡單的通訊錄
用tableview寫了一個(gè)簡單的通訊錄,話不多說,咱們慢慢構(gòu)建。
首先,你需要一個(gè)tableview(這是肯定的。。代碼就不貼了哈),接下來,你需要對數(shù)據(jù)源進(jìn)行處理,按A-Z首字母分類。
UILocalizedIndexedCollation *indexedCollation = [UILocalizedIndexedCollation currentCollation];[self.sectionHeaderArray addObjectsFromArray:[indexedCollation sectionTitles]]; NSMutableArray *sortarray = [[NSMutableArray alloc] init]; for (int i = 0; i < self.sectionHeaderArray.count; i++) { NSMutableArray *sectionArray = [[NSMutableArray alloc] init]; [sortarray addObject:sectionArray];} for (NSString *str in self.dataArray) { NSString *fitst = [EaseChineseToPinyin pinyinFromChineseString:str]; NSInteger index = [indexedCollation sectionForObject:[fitst substringFromIndex:0] collationStringSelector:@selector(uppercaseString)]; [sortarray[index] addObject:str];} //每個(gè)section內(nèi)的數(shù)組排序 for (int i = 0; i < [sortarray count]; i++) { NSArray *array = [[sortarray objectAtIndex:i] sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) { NSString *firstLetter1 = [EaseChineseToPinyin pinyinFromChineseString:obj1];firstLetter1 = [[firstLetter1 substringToIndex:1] uppercaseString]; NSString *firstLetter2 = [EaseChineseToPinyin pinyinFromChineseString:obj2];firstLetter2 = [[firstLetter2 substringToIndex:1] uppercaseString]; return [firstLetter1 caseInsensitiveCompare:firstLetter2]; }]; [sortarray replaceObjectAtIndex:i withObject:[NSMutableArray arrayWithArray:array]];} //去掉空的section for (NSInteger i = [sortarray count] - 1; i >= 0; i--) { NSArray *array = [sortarray objectAtIndex:i]; if ([array count] == 0) {[sortarray removeObjectAtIndex:i];[self.sectionHeaderArray removeObjectAtIndex:i]; }}[self.sortArray addObjectsFromArray:sortarray];[self.tableView reloadData];
接下來,你要給tableview設(shè)置一個(gè)索引。
-(NSArray )sectionIndexTitlesForTableView:(UITableView )tableView{ return self.sectionHeaderArray;}
文/小五么么噠(簡書作者)原文鏈接:http://www.jianshu.com/p/d158ff5bd7b0相關(guān)文章:
1. idea配置jdk的操作方法2. JAMon(Java Application Monitor)備忘記3. SpringBoot+TestNG單元測試的實(shí)現(xiàn)4. Docker容器如何更新打包并上傳到阿里云5. Java GZip 基于內(nèi)存實(shí)現(xiàn)壓縮和解壓的方法6. 完美解決vue 中多個(gè)echarts圖表自適應(yīng)的問題7. VMware中如何安裝Ubuntu8. python 浮點(diǎn)數(shù)四舍五入需要注意的地方9. Springboot 全局日期格式化處理的實(shí)現(xiàn)10. vue實(shí)現(xiàn)web在線聊天功能
