iOS 一個(gè)簡(jiǎn)單的通訊錄
用tableview寫了一個(gè)簡(jiǎn)單的通訊錄,話不多說(shuō),咱們慢慢構(gòu)建。
首先,你需要一個(gè)tableview(這是肯定的。。代碼就不貼了哈),接下來(lái),你需要對(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];
接下來(lái),你要給tableview設(shè)置一個(gè)索引。
-(NSArray )sectionIndexTitlesForTableView:(UITableView )tableView{ return self.sectionHeaderArray;}
文/小五么么噠(簡(jiǎn)書(shū)作者)原文鏈接:http://www.jianshu.com/p/d158ff5bd7b0相關(guān)文章:
1. 概述IE和SQL2k開(kāi)發(fā)一個(gè)XML聊天程序2. 利用CSS3新特性創(chuàng)建透明邊框三角3. HTML <!DOCTYPE> 標(biāo)簽4. XML入門的常見(jiàn)問(wèn)題(二)5. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)6. HTML5 Canvas繪制圖形從入門到精通7. XML入門精解之結(jié)構(gòu)與語(yǔ)法8. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼9. HTML DOM setInterval和clearInterval方法案例詳解10. XML入門的常見(jiàn)問(wèn)題(一)
