根據名字的首字母索引目錄

2021-08-14 20:37:06 字數 2860 閱讀 1134

新建乙個類別

新建類別的步驟如下圖

將新建的類別–關閉arc

一、在建立好的類別 nsstring+characters.h 中

1、定義兩個方法

//講漢字轉換為拼音

-(nsstring *)pinyinofname;

//漢字轉換為拼音後,返回大寫的首字母

-(nsstring *)firstcharacterofname;

2、在nsstring+characters.m 中實現兩個方法

//講漢字轉換為拼音

- (nsstring *)pinyinofname

return name;

}//漢字轉換為拼音後,返回大寫的首字母

- (nsstring *)firstcharacterofname

nsstring * result;

result = [first substringwithrange:nsmakerange(0, 1)];

return result.uppercasestring;

}

二、在viewcontroller.m 中匯入建立的類別的標頭檔案

#import 

"nsstring+characters.h"

—-> 簽署 tableview 的協議

—-> 定義屬性

// 名字陣列

@property (nonatomic ,strong) nsarray *dataarr;

// 最外層的大字典

@property (nonatomic ,retain) nsmutabledictionary *contactdic;

// 獲取到的首字母的陣列、排序

@property (nonatomic ,retain) nsmutablearray *firstletterarr;

// **

@property (nonatomic ,strong) uitableview *mytable;

—-> 懶載入初始化**

// 懶載入**

-(uitableview *)mytable

return _mytable;

}

—-> 在 viewdidload 中做以下操作

- (void)viewdidload
—-> 自定義 處理資料的方法

// 處理資料的方法

-(void)dealwithdata

// 將名字加到陣列

[namearr addobject:str];

}// 索引資料

self

.firstletterarr = [nsmutablearray arraywitharray:[self

.contactdic allkeys]];

// 排序 - 公升序

[self

.firstletterarr sortusingcomparator:^nscomparisonresult(id _nonnull obj1, id _nonnull obj2) ];

}

—-> tableview 資料來源方法

#pragma **資料來源方法

-(nsinteger)numberofsectionsintableview:(uitableview *)tableview

-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section

-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

// 內容

nsstring *str = [self

.firstletterarr objectatindex:indexpath.section];

nsarray *arr = [self

.contactdic objectforkey:str];

cell.textlabel

.text = arr[indexpath.row];

return cell;

}

—-> 設定頁首標題 —- 分割槽的標題為每個名字的大寫首字母

// 頁首

-(nsstring *)tableview:(uitableview *)tableview titleforheaderinsection:(nsinteger)section

—-> 將頁尾的高度設定為0 —- 便於美觀

// 頁尾的高度

-(cgfloat)tableview:(uitableview *)tableview heightforfooterinsection:(nsinteger)section

Android 根據首字母給城市排序

最近做的專案裡面有用到選城市的功能,城市是根據首字母排序的,資料都是通過後台返回的 這個功能用到了乙個第三方的庫,indexlib,然後列表是用recycleview實現的,1.我寫的model public class citymodel implements serializable for i...

js 根據中文獲取拼音首字母

js部分 var pinyin param str 判斷中英文 returns 中文返回true,其他返回false function ischinese str param str 獲取拼音的字串 param split 拼音分隔符 param uppercase 是否轉為大寫 returns 結...

聯絡人首字母列表索引

mainactivity.xml布局 sidebarview public class sidebarview extends linearlayout implements view.ontouchlistener public sidebarview context context,nullab...