火車票查詢

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

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

主要使用了Auto Layout適配.

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

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


1.代售點查詢

1.主界面

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

2.車站搜索

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

3.日期選擇


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

最后查詢.

4.查詢結(jié)果

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

5.車次信息

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


2.代售點查詢

1.主界面

代售點查詢支持手動選擇和地圖定位.點擊了任何一個UITextField就會顯示一個PickerView

2.PickerView


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

點擊查詢.

3.查詢


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

4.地圖定位


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


3.車次查詢

1.主界面


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

2.車次信息

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


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




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

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


自己的第一篇簡書,將就看把.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容