?這個作品是我最近制作的畢業(yè)設(shè)計,全程獨(dú)立完成.
主要采用了目前主流的框架模式UITabBarController + UINavigationController,使用代碼和storybroardy以及xib結(jié)合編寫.
主要使用了Auto Layout適配.
其中的素材資料來源于其他安裝包,數(shù)據(jù)主要是從12306和58同城上面抓取.
軟件主要包括了三大功能模塊,分別是站站查詢,代售點(diǎn)查詢和車次查詢.
1.代售點(diǎn)查詢
1.主界面
這個功能模塊的數(shù)據(jù)來源于12306官網(wǎng),采用get請求發(fā)送直接可以獲得json數(shù)據(jù),數(shù)據(jù)處理沒有上面難度,這個模塊在我看來的一大難點(diǎn)是在URL的參數(shù)問題上,因為官網(wǎng)上面的參數(shù)是使用地名代碼,并且轉(zhuǎn)碼,所以我從網(wǎng)絡(luò)遍歷了兩千多個城市,把城市名和相應(yīng)的代號做成了Plist文件.日期默認(rèn)選中的是明天,城市名使用字典存進(jìn)了caches,所以默認(rèn)是上次的城市.
2.車站搜索
在火車站查詢的時候一大難點(diǎn)是模糊所搜,使用模糊搜索tableView要做相應(yīng)處理,邏輯有點(diǎn)混亂.
3.日期選擇
這個日期是我從github上下載的,其中相應(yīng)的屬性都可以設(shè)置.
最后查詢.
4.查詢結(jié)果
這里面的cell主要是分兩類,兩類cell都是采用xib加載的.列表添加了下拉刷新功能.點(diǎn)擊具體的cell會跳到相應(yīng)的具體車次信息.
5.車次信息
這個界面也就是第三大功能實(shí)現(xiàn)的,里面可以查詢到具體的車次信息.
2.代售點(diǎn)查詢
1.主界面
代售點(diǎn)查詢支持手動選擇和地圖定位.點(diǎn)擊了任何一個UITextField就會顯示一個PickerView
2.PickerView
數(shù)據(jù)來源于12306,實(shí)時加載數(shù)據(jù).選中自動填充文本框.
點(diǎn)擊查詢.
3.查詢
顯示代售點(diǎn)信息,數(shù)據(jù)來源也是12306,在這里最大的難點(diǎn)是不等高cell的問題,所以我采用自定義純代碼的方式設(shè)計了不等高的cell. 點(diǎn)擊代售點(diǎn)會進(jìn)入地圖定位.
4.地圖定位
這里沒有我使用的是系統(tǒng)MKMapView.
3.車次查詢
1.主界面
這里我添加了歷史記錄功能,并且對UITextField輸入進(jìn)行了控制和轉(zhuǎn)換.
2.車次信息
這里最大的問題就是數(shù)據(jù)源的問題,因為12306上的車次查詢需要輸入驗證碼,考慮到用戶體驗,所以就從58同城xml上面解析,那么最大的問題來了就是XML處理,由于58xml特別亂,各種廣告,解析處理惡心的要死,不多說上解析代碼.
XML中NSString截取轉(zhuǎn)模型
自己摸索了一晚上才搞出來,我也是醉了.
下載地址https://github.com/liuyuxuan/Train-ticket-query
自己的第一篇簡書,將就看把.