1、第7章 IOS客户端设计倚动实验室12022-6-23CONTENTS7.1 系统整理流程图设计目录7.2 各模块详细设计7.3 “豹考通”IOS客户端程序结构分析22022-6-23 本章我们将会介绍“豹考通”在IOS系统上的设计与实现的过程,从界面到程序流程设计,再到模块整合实现,最后到应用的完成。通过本章的学习,读者能够了解到IOS手机客户端开发的整体流程。 本章中,会讲解“豹考通”的大部分模块的分析与设计过程,为读者提供实现的思路,但在具体的功能模块实现部分,仅仅只会对几个模块进行实现,其他的模块供读者在课后练习。豹考通IOS端开发需要用到的数据库表有:专业表 地区表 批次表 科类表学
2、校表 省控线表 学校录取线表32022-6-237.1系统整体流程图设计系统整体流程图设计根据系统需求分析可知,“豹考通”的主要功能包括以下几点:1. 欢迎引导界面2. 我的高考(个人信息)3. 省控线查询4. 投档线查询5. 学校推荐6. 投档线预测7. 关于我们下面我们列出了系统的功能结构图,如图7-1所示。图7-1功能结构图42022-6-237.1.1“我的高考”流程 “我的高考”的流程主要是用户填写高考信息,其中如果用户的生源地填写“江西”,那么广告位信息的显示将和“非江西”生源地用户不一样,“我的高考”流程图如图7-2所示。图7-2 “我的高考”流程图52022-6-23 “我的高
3、考”界面跳转图如下7-3所示。模块包括了6个界面,我的高考模块主界面,科类填写界面、批次填写界面、生源地填写界面、分数填写界面和广告信息界面。其中科类填写、批次填写和生源地填写3个界面需要界面跳转,其他的界面则在相关信息基础上做出修改屏显示。图7-3“我的高考”模块界面跳转图62022-6-237.1.2“省控线查询”流程 在查询省控线之前,用户需要选择要查询的省份,查询的年份,科类和批次。科类和批次可以缺省,为“不限”,“省控线查询”流程图如图7-4所示。 查询前,用户需要选择查询的省市地区,因为全国省市地区信息是以plist文件形式保存在本地,所以这里不需要读取网络数据。选择好需要查询的省
4、份地区信息后,因为查询需要访问网络,所以在进入查询省控线界面前,系统会对手机的网络连通状态进行检查,如果手机并未连网,或者网络信号较差,那么系统则会提示用户连网或使用wifi进行网络访问。 查询的结果根据用户选择的查询条件对应的展示在UITableView表视图中。图7-4“省控线查询”流程图72022-6-237.1.3“投档线查询”流程 和省控线查询类似,用户在查询投档线之前需要选择省市,学校,还要选择年份科类和批次,“投档线查询”流程图如图7-5所示。 与“省控线查询”模块不同的是,“投档线查询”模块在选择省市地区的基础上,还需要选择学校,所以判断网络连接情况会在选择学校前,因为学校的选
5、择是需要应用访问服务器端接口,返回数据,如果用户未联网,则不需要进入到下面的界面。图7-5投档线查询流程图82022-6-237.1.4“推荐学校”流程 在“推荐学校”功能中,首先系统会从本地读取用户已经输入的信息,接下来用户需要选择批次,推荐倾向和目标省市,倾向包括冒险,保守和稳妥,通过这三个倾向推荐学校,考生可能被录取的概率越来越大。目标省市是代表用户想要去往读书的省市,“推荐学校”流程图如图7-6所示。图7-6推荐学校流程图92022-6-237.1.5“投档线预测”流程 投档预测之前,系统也会从本地读取用户个人信息,接下来用户需要分别选择批次和学校。与推荐学校不同的是,投档线预测在界面
6、载入时,就会从服务器端读取一次2014年投档线的最新信息。所以在界面显示时,系统还需要判断用户是否连入网络,若没有联网,就不需要再去请求网络数据;若联网,但是选择的批次无投档线信息,那么就需要用户自己输入投档线(0-750),“投档线预测”流程图如图7-7所示。图7-7投档线预测流程图102022-6-237.2各模块详细设计各模块详细设计7.2.1欢迎界面 根据我们的功能界面设计分析可以得到,实现欢迎界面滑动效果的控件是UIScrollView,然后设置UIControl使得点击UIControl的点或者滑动UIScrollView能够让界面左右滑动。界面内容的设计是项目组美工使用Windo
7、w下Coreldraw X6绘制的。112022-6-237.2.2我的高考 “我的高考”模块是用于显示用户的基本高考信息,包括科类、高考成绩、批次和生源地。在基本信息下方有一个广告位用于相关宣传。 显示信息我们可以使用UITableView表视图来显示用户信息。 使用UIAlertView让用户输入,因为UIAlertView默认的Style是提示框,为了能让用户输入,所以我们这里选择UIAlertView的Style为UIAlertViewStylePlainTextInput,这样用户就能输入相关信息,而且需要对用户输入的分数做出判断,0-750之内的数值才有效,否则需要用户重新输入。
8、需要选择科类、生源地和批次信息的单元格cell就要创建子视图,将可选信息放在子视图的UITableView表视图中,用户选择信息后将cell的内容返回到“我的高考模块”中,并显示。这里就涉及到一个关键技术-视图控制器之间值的传递。我们这里使用的是协议代理。 根据需求分析可以得到,广告位的显示有两种情况:当考生生源地为江西时,显示的是和江西机电学院相关的信息;而非江西考生,显示的是南昌倚动软件有限公司联系方式。这里我们就需要对考生生源地信息进行判断。 所有的信息我们都通过NSUserDefaults存储到本地文件中,供程序读取。122022-6-237.2.3省控线查询根据7.2节中录取线查询的
9、流程图,我们归纳出录取线查询功能的使用步骤:1. 选择省份2. 选择学校(可选)3. 选择年份、科类和批次4. 单击查询按钮,返回结果。这里我们需要创建3个子视图控制器,分别用于显示省份、学校和查询界面。在查询界面中,选择部分我们使用的是UIPickerView选择器,并通过它的协议代理方法将选择的信息返回给系统。最后分数的显示还是使用UITableView表视图。132022-6-237.2.4推荐学校图7-8推荐学校界面 由图7-8推荐学校界面并结合需求分析可以看出,“推荐学校”模块主要由3个部分组成:1. 个人信息栏,在“我的高考”模块中,我们将用户的高考信息保存在本地,在个人信息栏中我
10、们只需要通过NSUserDefaults读取即可。但需要注意的是,这个信息是需要实时更新的,也就是说当用户修改了个人信息之后,个人信息栏的相关信息也要做出对应的改变。所以我们就在viewDidAppear方法中去加载个人信息,保证每次显示该界面时信息都是最新的。2. 相关信息选择栏,在这里我们选择批次、目标省市和推荐的倾向,这些也都是接口中的参数选项,是必选项。批次和倾向的选择我们是通过UISegmentedControl来实现,而目标省市的选择是通过弹出模态视图(ModalViewController)来实现,这里也需要用到协议代理将信息传回视图控制器。3. 推荐结果栏,在该栏中,显示了系统
11、为考生推荐的学校信息,点击学校名称,还会弹出学校专业的信息。信息的显示是通过UITableView来实现。142022-6-237.2.5投档线预测“投档预测”模块也可以分为3个部分:1. 个人信息栏,个人信息显示在此区域,信息包括科类和生源地。2. 相关信息选择栏,和“推荐学校”模块不同的是,省控线分数是在界面显示时获取的网络数据,如果该批次没有相关信息,那就需要用户自己输入。3. 预测结果栏,显示最后预测投档线的结果,包括冒险分、保守分和稳妥分。如图7-9所示。图7-9投档预测界面152022-6-237.3“豹考通豹考通”IOS客户端程序结构分客户端程序结构分析析7.3.1整体程序结构分
12、析图7-10“豹考通”IOS客户端程序结构图 豹考通:这个部分是程序的main函数和AppDelegate,也就是整个程序的入口部分,AppDelegate也是整个应用生命周期的开始。基础视图:该部分定义了应用根视图控制器与基导航控制器,是整个程序框架的基石。我的高考:该部分显示了高考学子高考的基本信息。推荐学校:该部分实现了帮助考生推荐学校的功能。分数查询:该部分实现了考生对学校分数线查询的功能。Image.xcassets:这个部分放置应用所包含的图片文件,包括应用图标,启动图片等等。Supporting Files:该部分大部分放置与应用有关的第三方库或者工具类。 GaokaoHelpe
13、rTests:这个部分放置了与应用测试相关的文件,开发时不需要用到。Frameworks:该部分放置了与此应用相关的库文件。Products:这个部分是产品发布后相关文件信息,开发时也不需要用到。162022-6-23 在上述10个部分中,有6个部分是由系统自动为我们创建,除了我们自己应用中的模块:基础视图、我的高考、推荐学校和分数查询。读者在开发时,最好将对应的文件放入相应的结构中,这样利于开发时文件的查找。7.3.2子功能模块结构分析图7-11基础视图模块文件结构图图7-12 我的高考模块文件结构图172022-6-23图7-13 推荐学校模块文件信息图图7-14 分数查询模块文件结构信息图182022-6-23图7-15 Supporting Files模块文件结构信息图课后练习1、思考IOS端界面设计与Android端界面设计有哪些异同?2、思考IOS端界面跳转传值的方式,在本章中,传值的方法使用的是UINavigationController的PushViewController方法,还有哪些界面传值方法?并比较它们的优缺点。3、将本章7.2.5小节“投档预测”功能模块用自己的语言描述其设计的思路,以及功能实现的流程。192022-6-23202022-6-23212022-6-23
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。