火車票查詢

?這個(gè)作品是我最近制作的畢業(yè)設(shè)計(jì),全程獨(dú)立完成.

主要采用了目前主流的框架模式UITabBarController + UINavigationController,使用代碼和storybroardy以及xib結(jié)合編寫.

主要使用了Auto Layout適配.

其中的素材資料來源于其他安裝包,數(shù)據(jù)主要是從12306和58同城上面抓取.

軟件主要包括了三大功能模塊,分別是站站查詢,代售點(diǎn)查詢和車次查詢.


1.代售點(diǎn)查詢

1.主界面

這個(gè)功能模塊的數(shù)據(jù)來源于12306官網(wǎng),采用get請(qǐng)求發(fā)送直接可以獲得json數(shù)據(jù),數(shù)據(jù)處理沒有上面難度,這個(gè)模塊在我看來的一大難點(diǎn)是在URL的參數(shù)問題上,因?yàn)楣倬W(wǎng)上面的參數(shù)是使用地名代碼,并且轉(zhuǎn)碼,所以我從網(wǎng)絡(luò)遍歷了兩千多個(gè)城市,把城市名和相應(yīng)的代號(hào)做成了Plist文件.日期默認(rèn)選中的是明天,城市名使用字典存進(jìn)了caches,所以默認(rèn)是上次的城市.

2.車站搜索

在火車站查詢的時(shí)候一大難點(diǎn)是模糊所搜,使用模糊搜索tableView要做相應(yīng)處理,邏輯有點(diǎn)混亂.

3.日期選擇


這個(gè)日期是我從github上下載的,其中相應(yīng)的屬性都可以設(shè)置.

最后查詢.

4.查詢結(jié)果

這里面的cell主要是分兩類,兩類cell都是采用xib加載的.列表添加了下拉刷新功能.點(diǎn)擊具體的cell會(huì)跳到相應(yīng)的具體車次信息.

5.車次信息

這個(gè)界面也就是第三大功能實(shí)現(xiàn)的,里面可以查詢到具體的車次信息.


2.代售點(diǎn)查詢

1.主界面

代售點(diǎn)查詢支持手動(dòng)選擇和地圖定位.點(diǎn)擊了任何一個(gè)UITextField就會(huì)顯示一個(gè)PickerView

2.PickerView


數(shù)據(jù)來源于12306,實(shí)時(shí)加載數(shù)據(jù).選中自動(dòng)填充文本框.

點(diǎn)擊查詢.

3.查詢


顯示代售點(diǎn)信息,數(shù)據(jù)來源也是12306,在這里最大的難點(diǎn)是不等高cell的問題,所以我采用自定義純代碼的方式設(shè)計(jì)了不等高的cell. 點(diǎn)擊代售點(diǎn)會(huì)進(jìn)入地圖定位.

4.地圖定位


這里沒有我使用的是系統(tǒng)MKMapView.


3.車次查詢

1.主界面


這里我添加了歷史記錄功能,并且對(duì)UITextField輸入進(jìn)行了控制和轉(zhuǎn)換.

2.車次信息

這里最大的問題就是數(shù)據(jù)源的問題,因?yàn)?2306上的車次查詢需要輸入驗(yàn)證碼,考慮到用戶體驗(yàn),所以就從58同城xml上面解析,那么最大的問題來了就是XML處理,由于58xml特別亂,各種廣告,解析處理惡心的要死,不多說上解析代碼.


XML中NSString截取轉(zhuǎn)模型




自己摸索了一晚上才搞出來,我也是醉了.

下載地址https://github.com/liuyuxuan/Train-ticket-query


自己的第一篇簡(jiǎn)書,將就看把.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容