iOS 一個(gè)簡單的通訊錄
用tableview寫了一個(gè)簡單的通訊錄,話不多說,咱們慢慢構(gòu)建。
首先,你需要一個(gè)tableview(這是肯定的。。代碼就不貼了哈),接下來,你需要對(duì)數(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. ASP.NET MVC實(shí)現(xiàn)城市或車型三級(jí)聯(lián)動(dòng)2. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟3. SSM框架JSP使用Layui實(shí)現(xiàn)layer彈出層效果4. IntelliJ IDEA導(dǎo)入jar包的方法5. Python利用百度地圖獲取兩地距離(附demo)6. 一篇文章弄清楚Ajax請(qǐng)求的五個(gè)步驟7. java基于spring boot本地上傳圖片示例解析8. ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對(duì)象Application和Session)9. UTF8轉(zhuǎn)成GB2312亂碼問題解決方案10. 刪除docker里建立容器的操作方法
