ios選擇城市

2021-07-24 06:37:26 字數 2541 閱讀 9896

在ios開發當中,選擇城市是很常用的,一般都是根據城市的拼音首字母進行分組,然後用分組的uitableview展現出來,實現的效果如下

我是使用了兩個plist檔案儲存城市的,乙個是儲存所有的城市,另外乙個是儲存熱門城市

儲存所有的城市的city.plist,只是訪問城市的中文名稱而已,之後用乙個第三方的開源庫chinesetopinyin來把中文轉換成拼音,然後根據拼音的首字母就可以分組了

儲存熱門城市的hotcity.plist,也只是儲存中文名稱,之後把這一組直接歸為熱門這一組就可以了

下面講解一下具體操作

第一步就是直接讀取了,這一步不用多說了

1     hotcityarray=[[nsmutablearray  alloc] initwithcontentsoffile:[[nsbundle mainbundle] pathforresource:@"

hotcity

" oftype:@"

plist

"]];

23 cityarray=[[nsmutablearray alloc] initwithcontentsoffile:[[nsbundle mainbundle] pathforresource:@"

city

" oftype:@"

plist

"]];

第二步就是建立個nsmutabledictionary,key就是字母,value就是城市拼音首字母是key的所有城市

citydic=[[nsmutabledictionary alloc]init];

nsstring * pinyin=nil;

nsmutablearray *arr=nil;

for (nsstring * city in

cityarray)

else

}

第三步就是把熱門城市加進去

sortarray=[[nsmutablearray alloc]initwithobjects:@"熱門"

, nil];

sortarray=[sortarray arraybyaddingobjectsfromarray:[[citydic allkeys] sortedarrayusingselector:@selector(compare:)]];

[citydic setobject:hotcityarray forkey:

@"熱門

"];

這樣資料處理就基本完成了

下一步就是介面展現了

#pragma mark table view data source methods

//選中

- (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath

- (nsinteger)numberofsectionsintableview:(uitableview *)tableview

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

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

nsmutablearray *array=[tableviewdic objectforkey:[sortarray objectatindex:section]];

//給label附上城市名稱 key 為:c_name

cell.textlabel.text =[array objectatindex:row];

cell.textlabel.font = [uifont fontwithname:@"

trebuchetms-bold

" size:15

];

return

cell;

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

- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath

- (nsarray *)sectionindextitlesfortableview:(uitableview *)tableview

ios選擇城市

在ios開發當中,選擇城市是很常用的,一般都是根據城市的拼音首字母進行分組,然後用分組的uitableview展現出來,實現的效果如下 我是使用了兩個plist檔案儲存城市的,乙個是儲存所有的城市,另外乙個是儲存熱門城市 儲存所有的城市的city.plist,只是訪問城市的中文名稱而已,之後用乙個第...

bootstrap sql 城市選擇

送你一場完美體驗的sql實戰練習。讓小白入坑資料分析,但不提供學習環境,說明態度不端正,傳授體驗也不好 所以,我提供這些,先給自己點讚乙個。實戰步驟,說白話一點,分4步完成實戰練習。環境是免費的,就是自己阿里雲部署的乙個開源bi工具superset學習 但你需要申請許可權。申請方式 進入sql la...

IOS 定位城市和切換城市

1.ios中自帶的地圖為高德地圖 1 新增框架corelocation.framework框架。2 新增標頭檔案 import 3 新增 cllocationmanagerdelegate 4 在info.plist裡新增 privacy location always usage descript...