iOS 一個(gè)簡(jiǎn)單的通訊錄
用tableview寫(xiě)了一個(gè)簡(jiǎn)單的通訊錄,話(huà)不多說(shuō),咱們慢慢構(gòu)建。
首先,你需要一個(gè)tableview(這是肯定的。。代碼就不貼了哈),接下來(lái),你需要對(duì)數(shù)據(jù)源進(jìn)行處理,按A-Z首字母分類(lèi)。
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];
接下來(lái),你要給tableview設(shè)置一個(gè)索引。
-(NSArray )sectionIndexTitlesForTableView:(UITableView )tableView{ return self.sectionHeaderArray;}
文/小五么么噠(簡(jiǎn)書(shū)作者)原文鏈接:http://www.jianshu.com/p/d158ff5bd7b0相關(guān)文章:
1. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明2. PHP設(shè)計(jì)模式中工廠(chǎng)模式深入詳解3. CSS hack用法案例詳解4. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過(guò)程(親測(cè)可用)5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. asp中response.write("中文")或者js中文亂碼問(wèn)題7. JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析8. PHP session反序列化漏洞超詳細(xì)講解9. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向10. ASP+ajax實(shí)現(xiàn)頂一下、踩一下同支持與反對(duì)的實(shí)現(xiàn)代碼
