需求:
許多的銀行展示在TableView上详羡,需要加上UITableView的右側(cè)索引功能殿雪、方便用戶快速選擇。類似通訊錄的功能谤牡。
原理:
在Objective C語言中副硅,字符串是以unicode進行編碼的。在unicode字符集中翅萤,漢字的編碼范圍為4E00 到 9FA5 之間(即從第19968開始的20902個字符是中文簡體字符)恐疲。我們把這些字符的拼音首字母按照順序都存放在一個char數(shù)組中。當我們查找一個漢字的拼音首字母時套么,只需把這個漢字的unicode碼(即char強制轉(zhuǎn)換為int)減去19968培己,然后用這個數(shù)字作為索引去找char數(shù)組中存放的字母即可。參見pinyin.c
文件胚泌。
獲取銀行名稱首漢字的拼音首字母省咨,然后根據(jù)首字母去構(gòu)建二維數(shù)組,便于在UITableView的section下的展示诸迟。
tableView索引的生成需要回調(diào)代理方法:
//索引標題
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
return self.sectionTitles;
}
//點擊索引跳轉(zhuǎn)到相應(yīng)位置
-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
NSIndexPath *selectIndexPath = [NSIndexPath indexPathForRow:0 inSection:index];
if (![self.contentArrs[index] count]) {
return 0;
}else{
[tableView scrollToRowAtIndexPath:selectIndexPath atScrollPosition:UITableViewScrollPositionNone animated:YES];
return index;
}
}
demo-3.png
項目具體完整代碼項目地址:【點擊此處】