火车票查询

 这个作品是我最近制作的毕业设计,全程独立完成.

主要采用了目前主流的框架模式UITabBarController + UINavigationController,使用代码和storybroardy以及xib结合编写.

主要使用了Auto Layout适配.

其中的素材资料来源于其他安装包,数据主要是从12306和58同城上面抓取.

软件主要包括了三大功能模块,分别是站站查询,代售点查询和车次查询.


1.代售点查询

1.主界面

这个功能模块的数据来源于12306官网,采用get请求发送直接可以获得json数据,数据处理没有上面难度,这个模块在我看来的一大难点是在URL的参数问题上,因为官网上面的参数是使用地名代码,并且转码,所以我从网络遍历了两千多个城市,把城市名和相应的代号做成了Plist文件.日期默认选中的是明天,城市名使用字典存进了caches,所以默认是上次的城市.

2.车站搜索

在火车站查询的时候一大难点是模糊所搜,使用模糊搜索tableView要做相应处理,逻辑有点混乱.

3.日期选择


这个日期是我从github上下载的,其中相应的属性都可以设置.

最后查询.

4.查询结果

这里面的cell主要是分两类,两类cell都是采用xib加载的.列表添加了下拉刷新功能.点击具体的cell会跳到相应的具体车次信息.

5.车次信息

这个界面也就是第三大功能实现的,里面可以查询到具体的车次信息.


2.代售点查询

1.主界面

代售点查询支持手动选择和地图定位.点击了任何一个UITextField就会显示一个PickerView

2.PickerView


数据来源于12306,实时加载数据.选中自动填充文本框.

点击查询.

3.查询


显示代售点信息,数据来源也是12306,在这里最大的难点是不等高cell的问题,所以我采用自定义纯代码的方式设计了不等高的cell. 点击代售点会进入地图定位.

4.地图定位


这里没有我使用的是系统MKMapView.


3.车次查询

1.主界面


这里我添加了历史记录功能,并且对UITextField输入进行了控制和转换.

2.车次信息

这里最大的问题就是数据源的问题,因为12306上的车次查询需要输入验证码,考虑到用户体验,所以就从58同城xml上面解析,那么最大的问题来了就是XML处理,由于58xml特别乱,各种广告,解析处理恶心的要死,不多说上解析代码.


XML中NSString截取转模型




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

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


自己的第一篇简书,将就看把.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容