收藏 分销(赏)

本科毕业论文---基于ios的天气预报查询系统设计与实现正文.doc

上传人:可**** 文档编号:3006245 上传时间:2024-06-12 格式:DOC 页数:41 大小:2.17MB
下载 相关 举报
本科毕业论文---基于ios的天气预报查询系统设计与实现正文.doc_第1页
第1页 / 共41页
本科毕业论文---基于ios的天气预报查询系统设计与实现正文.doc_第2页
第2页 / 共41页
本科毕业论文---基于ios的天气预报查询系统设计与实现正文.doc_第3页
第3页 / 共41页
本科毕业论文---基于ios的天气预报查询系统设计与实现正文.doc_第4页
第4页 / 共41页
本科毕业论文---基于ios的天气预报查询系统设计与实现正文.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、 毕业设计(论文)纸 装 订 线 基于iOS的天气预报查询系统的设计与实现摘要 随着科学技术的发展,移动终端逐渐走进人们的视线,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。本课题研究的是基于iOS平台下的天气软件,目的是帮助用户随时随地查询天气信息及天气变化情况,让生活更加舒适方便。本文详细讲述了iOS平台下天气软件的界面设计及数据处理部分,主要包括界面的实现、控件的使用、界面的布局和数据的处理等内容,结合WEB服务网的气象数据,将准确的天气情况以友好的方式呈现给用户,使用户可以更加愉快地体验本软件的服务。关键词 iOS 界面 查询 天气预报Design And Imple

2、mentation Of Weather Query System Based On iOSAbstract With the development of science and technology, the mobile terminal gradually into the peoples attention, related to more widely, and play an increasingly important role in peoples daily lives. The study of this topic is the weather forecast sof

3、tware based on the iOS platform ,and designed to help the user to query weather information and weather changes anytime, anywhere, to make life more comfortable and convenient. This paper describes the software interface design of the iOS platform under the weather and data handling part, including

4、the contents of the interface implementation, the use of controls, the layout of the interface, and data handling and so on, combined with weather data of the Web Service, will be accurate weather conditions presented to the user-friendly way, allows the user to experience more enjoyable the service

5、 of this software.Key words iOS interface query weather orecast 装 订 线 毕业设计(论文)纸目录1 引言11.1 项目开发背景11.2 国内外相关领域研究现状11.3 论文研究的内容21.4 论文研究的意义31.5 论文内容的安排32 系统解决方案42.1 需求分析42.1.1 功能需求42.1.2 可靠性和可用性需求72.1.3 系统内容需求82.2 技术架构82.2.1 Foundation框架简介82.2.3 UIKit框架简介92.2.3 ASIHTTPRequest类库简介92.2.4 JSONkit类库简介92.2.

6、5 MVC设计模式简介102.3 开发平台102.3.1 iOS开发基本背景简介102.3.2 iOS开发平台搭建113 系统总体设计123.1 系统模块划分123.1.1 菜单模块123.1.2 天气查询模块123.1.3 分享模块133.2 系统总体结构133.2.1 系统模块协作关系133.2.2 系统启动流程143.2.3 系统内容结构组织144 系统详细设计164.1 菜单模块164.1.1 菜单模块的主要功能164.1.2 菜单模块的UI布局164.1.3 菜单模块的动画效果实现164.2 天气查询模块174.2.1用POST方法进行请求数据174.2.2处理请求到的数据174.2

7、.3模块功能实现及效果图184.2.3创建画板并画折线图214.3 分享模块224.3.1实景拍摄224.3.2调用本地相机234.3.2调用OAuth认证244.3.3向发微博接口发送请求264.3.4用JSONKit处理数据294.4 关于和帮助模块294.4.1“关于”界面的设计及实现294.4.2“帮助”界面的设计及实现305系统测试315.1 单元测试315.2 集成测试325.3 可用性测试336结论35致谢36参考文献371 引言1.1 项目开发背景苹果iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统。iOS与苹果的M

8、ac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美的国市场占有率为43%。iPhone将基于OS X的移动计算与创新的多点触摸屏幕、位置感知、板载加速计等结合在一起。苹果公司于2008年3月首次发布iPhone SDK beta时,开发人员蜂拥而至,一度造成服务器瘫痪。不到一周,iphone SDK的下载量就超过10万1。天气软件是一种非常实用的信息服务

9、,随着智能手机的不断普及,各种智能手机平台下都有各种各样的天气软件。iOS作为现在主流的智能手机之一,自然也需要这方面的软件。天气关系到人们的日常生活,如告知温暖,方便出行等。此外,对未来天气的预测还可以帮助人们进行农作物的浇灌、施肥、收割等工作。基于iOS平台的天气软件已经有很多,经过分析,用户第一眼往往是一个软件的外观,一个好看的界面才能让用户以一种爱美之心去尝试,才能进一步了解一个软件的好坏,所以吸引眼球的界面是争取用户的第一步。因此,界面设计工作对应用程序来说非常重要,在界面上吸引了用户,才能进一步让用户体验应用程序中的功能,使用这个软件。1.2 国内外相关领域研究现状随着iOS蓬勃的

10、发展,涌入了大量的iOS开发人员,同时华丽的iOS产品也层出不穷。虽然iOS的发展达到了前所未有的高度,但是在国内关于天气预报的软件也紧紧只有19款,所以开发出用户体验好并且实用的软件越来越重要。下面介绍一下国内外最流行的三款iOS系统天气软件并做个简单的对比,他们分别是墨迹天气、涂鸦天气和蜜蜂天气。(1) 墨迹天气天气显示面板:墨迹天气算是国内最有名的天气查询软件,用户比较最多,界面显示也比较美观、华丽,并且可以添加多个城市。默认显示四天的天气情况,并且左右滑动可以切换城市管理-天气-温度趋势图三个界面。温度趋势图可以显示未来五天的气温变化情况和日夜天气情况。 设置以及其他功能:墨迹天气的软

11、件设置只包括更新间隔等设置,除了天气信息外不提供其它更多的相关资讯,是一款相对来说比较单纯的软件。 CPU内存占用:在软件开启的情况下,实时CPU占用率在50%-70%,运行过程中一直居高不下。内存占用大概为10M左右。(2) 涂鸦天气 天气显示面板:国外的一款小软件,特色在其涂鸦的天气显示方式,非常生动,就像掌中的一个小剧场。左下角的按钮可以切换“显示”和“隐藏”详细信息,天气预报也不是国人习惯的非晴即雨,预报的天气带有问号,给出下雨的几率百分比。 其他功能:软件还有的功能就是分享模块,可以分享到Twitter和Facebook。 CPU内存占用:软件比较小,运行过程中CPU占用14%左右,

12、内存占用也很低,不到5M。(3) 蜜蜂天气 天气显示面板:蜜蜂天气虽然没有墨迹天气老牌,但是蜜蜂系列是无线多媒体软件的大家族,还包括蜜蜂读书、蜜蜂新闻、蜜蜂音乐、蜜蜂视频和蜜蜂股票等,所以在新闻资讯方面比较强。天气界面同样走的简洁精致路线。并且该软件支持未来五天天气预报和所在城市的每小时的准点详细温度走势、风向等。 其他功能:系统的设置和信息按钮出现在所有天气面板的左、右下角,用户交互上非常方便。 CPU内存占用:该软件再CPU和内存占用上控制的还算不错。软件在没有进行操作时,CPU占用控制在5%,进行刷新天气等操作时CPU占用27%,软件内存占用20M左右。1.3 论文研究的内容要做一个用户

13、体验好并且实用的天气查询软件,要做到一下几点,同时也是本论文的主要内容:(1) 实现可旋转的菜单界面。(2) 运用ASIHttpRequest获取并解析数据XML。(3) 运用iOS的frame框架显示解析后的数据。(4) 运用iOS的画图框架QuartzCore画出未来5天内的天气趋势。(5) 实现调用系统的照相机并拍照。(6) 实现用Jsonkit工具解析Json数据。(7) 实现调用本地相册并将图片和文字发送到新浪微博平台上。1.4 论文研究的意义天气软件是一种非常实用的信息服务,随着智能手机的不断普及,各种智能手机平台下都有各种各样的天气软件。用天气预报软件可以在第一时间掌握天气情况,

14、以便提前预防,把气象灾害造成的损失降到最低。同时也可以强化气象公共服务的职能,完善公共服务体系、改善公共服务手段、增加公共服务产品、提高公共服务质量,更好地发挥了气象事业对经济社会发展的现实性作用。iOS作为现在主流的智能手机之一,自然也需要这方面的软件。我们需要额外注意怎么样设计用户界面(UI)。当我们需要设计自定义的UI元件时,这些元件用以直接支持我们设计的应用程序的交互需要,这个时候我们需要尊重原生的Apple iOS控件的习惯用法2。因此,界面设计工作对应用程序来说非常重要,在界面上吸引了用户,才能进一步让用户体验应用程序中的功能,使用这个软件。1.5 论文内容的安排本文将在以后5章节

15、中介绍本系统的设计与实现。我们将在第2章分析一下整个系统,包括使用的技术、开发平台、以及项目部署的环境。第3章,总体介绍一下系统的设计思路,包括架构的选择,模块的划分,模块之间如何协同工作等。第4章,将详细介绍各个模块的实现。第5章,将介绍一下系统的测试,包括测试的方法,测试的结果,以及使用的工具等。2 系统解决方案2.1 需求分析为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论人们把设计和编码工作做得如何出色,不能真正的满足用户需求的程序只会令用户失望,给开发者带来麻烦。在本节,我们将对基于iOS的天气预报查询系统的设计

16、与实现提出完整、准确、清晰、具体的需求分析,并使用UML2.0用例图直观的表示系统各角色所具备的功能。2.1.1 功能需求基于iOS的天气预报查询系统的主要用途是为可以在第一时间掌握天气情况以及未来5天内的天气情况,可以通过折线图更直观的了解到未来5天内气温的趋势,并且可以用手机拍下当时的人、物、风景等,再通过本软件将手机相册内的图片以及自己写下的文字分享到新浪微博平台上。用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们希望如何使用一个系统。(1) 系统用例图如图2-1所示。查询当日天气预报查询未来5天天气预报分享图片和文字图2-1 系统用例图(2) 天

17、气查询用例图如图2-2所示。查询当日天气情况查询未来5天天气情况查看未来5天气温折线图按省、市、县查询地理位置图2-2 天气查询用例图(3) 分享图片和文字用例图如图2-3所示。调用本地相机拍摄分享图片和文字到新浪微博图2-3 分享图片和文字到新浪微博平台用例图(4) 天气预报业务流程图如图2-4所示。进入列表进入折线图页面选择地址进入天气预报页面退出系统图2-4 天气预报业务流程图(5) 分享图片和文字业务流程图如图2-3所示。进入系统选择分享选择实景拍摄选择拍照退出系统图2-5 分享图片和文字业务流程图下面就是本系统的具体功能需求:(1) 登录管理 用户不需要账号即可进入本系统。(2) 地

18、点查询管理 用户能分省、市、县三级地级区域进行查询; 用户能查询2400个以上中国城市。(3) 天气查询管理 数据每2.5小时更新一次,准确可靠; 用户能查询包括当日及未来5天的天气情况; 用户能查看到包括当日及未来5天的天气气温趋势图。(4) 拍摄相片照管理 用户可以用iPhone手机自带的相机拍摄; 拍摄下的照片会自动保存到iPhone手机相册。(5) 微博分享管理 用户能在iPhone手机相册选取将要分享的图片; 用户能编写想要分享的文字。(6) 退出 用户点击Home键即可退出程序。2.1.2 可靠性和可用性需求可靠性需求指定系统必须满足的可靠性,可用性与可靠性密切相关,它量化了用户可

19、以使用系统的程度。基于iOS的天气预报查询系统的设计与实现的所有数据都需要从网上即时更新以便获取到最新的天气数据,为确保用户可以随时都能查到即时的天气情况以及未来5天内的天气情况,所以在可靠性上必须确保。此系统可靠性应达到以下几点:(1) 本系统应达只要有网络就可以访问提供数据的网站;(2) 一个月内系统局部不能出现2次以上故障;(3) 每次故障解决时间不得超过24小时;(4) 确保数据的准确性;(5) 拍摄后的照片一定要存到本地相册;(6) 分享的信息一定要分享在新浪微博平台上。可用性应达到以下几点:(1) 在任何时候iPhone或者iTouch至少有一个该软件;(2) 在一个月内任何一部i

20、Phone或者iTouch上该软件在运行期间不能崩溃2次以上。2.1.3 系统内容需求系统开发初期,根据用户提出的要求,详细了解和分析了用户需求,确定了系统具有天气查询管理和分享管理。天气查询管理包括地理查询、即时天气查询、未来5天内天气查询和未来5天内气温的趋势图;分享管理包括可以进行拍摄照片、分享文字和本地相册的图片等。根据初期的设计思想进行分析,从内容上对该系统做如下划分:(1) 菜单:由四个Button键组成并实现一个类似转盘电话中拨号转盘的旋转菜单效果,并用精美的图片做背景;(2) 地点查询:将2400多个城市精确的分为省、市、县三级,并显示在列表上;(3) 天气查询:当选择自己想要

21、查看的城市后点击并进入天气查询,包括即时的天气情况和未来5天内的天气情况,内容带有文字和图片并显示在列表上,并将详细信息显示在单独的view里的lable上;(4) 天气趋势:将未来5天内的最高气温和最低气温分两条不同颜色的折线显示在画板上,使用户更直观的了解到未来5天内的天气变化;(5) 实景拍摄:点击Button键后可以调用手机自带的相机并进行拍照,并将拍摄后的照片保存到本地相册里;(6) 分享:从本地选取喜欢的照片并在textfield上进行文字编辑,编辑好后将文字和图片分享到国内最流行的新浪微博平台上,与亲朋好友分享自己的照片和心情。2.2 技术架构2.2.1 Foundation框架

22、简介为所有程序开发奠定基础的框架称为Foundation框架。它允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组、字典和集合。其他功能包括处理日期和事件、自动化的内存管理、处理基础文件系统、存储(或归档)对象、处理几何数据结构(如点和长方形)3。Foundation框架是用Object-C对Core Foundation框架里许多特性的封装。使用Foundation可以:(1) 创建和管理集合,比如数组和字典。(2) 访问存储在应用程序里的图片和其它资源。(3) 创建和管理字符串。(4) 提交和接收通知。(5) 创建日期和时间对象。(6) 自动发现IP网络上的设备。(7) 操作U

23、RL流。(8) 执行异步代码。2.2.3 UIKit框架简介UIKit框架是iPhone应用程序开发中最基本的框架,也是用得最多、最重要的框架4。所有的iOS应用程序都基于UIKit,绝对不能使应用程序脱离这个框架。UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。使用UIKit可以:(1) 构建和管理用户界面。(2) 捕获触摸和基于移动的事件。(3) 呈现文字和web内容。(4) 优化多任务程序。(5) 创建定制的用户界面元素。2.2.3 ASIHTTPRequest类库简介使用iOS SDK中的HTTP网络请求AP

24、I,相当的复杂,调用很繁琐。ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,它用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于如下基本的HTTP请求:5(1) 支持通过代理发起Http请求。(2) 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作。(3) 支持基本、摘要和NTLM身份认证,在同一会话中授权凭证会自动维持,并且可以存储在Keychain(Mac和iOS操作系统的密码管理系统)中。(4) ASIWebPageRequest 可以

25、下载完整的网页,包括包含的网页、样式表、脚本等资源文件,并显示在UIWebView /WebView中。任意大小的页面都可以无限期缓存,这样即使没有网络也可以离线浏览(5) 支持带宽限制。在iOS平台,可以根据当前网络情况来自动决定是否限制带宽,例如当使用WWAN(GPRS/Edge/3G)网络时限制,而当使用WIFI时不做任何限制。(6) 支持断点续传。(7) 支持同步和异步请求2.2.4 JSONkit类库简介JSONKit是Objective C平台上比较常用的JSON数据访问工具。JSONKit功能很强大,主要特色如下:(1) JSONKit能在运行的情况下与libz.dylib自动连

26、接而无须人工连接。(2) 在解析期间,如果检测到有gzip文件,JSONKit能自动解压。(3) 速度超快,支持之前的iOS版本(但要注意一点,从iOS 5开始,iOS就已经有本地JSON解析工具了)。(4) JSONKit的性能远优于JSON-Framework(即SBJSON),JSONKit使用起来也非常简单,表现性能比苹果iOS 5.0中的NSJSONSerialization还要好,速度比NSJSONSerialization快上25%到40%,已经是非常大的一个差距了。2.2.5 MVC设计模式简介MVC设计模式是在20世纪80年代发明的一种软件设计模式,至今已被广泛使用。MVC本

27、身并不是最基本的设计模式,它包含了若干更加基本的设计模式。在MVC中基本设计模式相互配合,确定了各功能之间的协作,这是MVC应用程序的特性6。其中MVC是 Model-View-Control 的简称,即模型-视图-控制器。(1) 模型(Model):“数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视

28、图可以了解在数据模型上发生的改变。(2) 视图(View):视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。(3) 控制器(Controller):控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。2.3 开发平台2.3.1 iOS开发基本背景简介iOS介绍:iOS是由苹果公司为iPhone等移动设备开发的操作系统。它主要是给iPhone、iPad和iPod touch使用。就像其

29、基于的Mac OS X操作系统一样,它也是以Darwin为基础的。iPhone OS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。应用程序由Objective-C开发。(1) 开发工具介绍: Xcode:开发iOS应用,需要在Mac OS X运行Xcode开发工具。Xcode是Apple的开发工具套件,支持项目管理、编辑代码、构建可执行程序、代码级调试、代码的版本管理、性能调优等等。这个套件的核心是Xco

30、de应用本身,它提供了基本的源代码开发环境。 Interface Builder:利用Interface Builder,可以通过拖拽组件在程序窗口上进行装配。布置好界面时,将内容保存在nib文件中。无论为哪种平台编程,都需要在Interface Builder中花费大量的时间7。 模拟器:iPhone模拟器可以在Mac中调试iOS应用程序,它的外观和真实的iPhone/iPad设备一模一样。使用它调试程序,比在真实设备中更方便快捷8。模拟器不支持GPS定位、摄像头、指南针等与硬件关联较大的功能。(2) 开发语言介绍:Objective-C是一门面向对象的编程语言,是开发iPhone和iPad

31、应用的编程语言,也是开发基于Mac操作系统的应用程序的编程语言9。Objective-C从标准的ANSI C语言扩展而来,并提供了定义类、方法和属性的语法,还有其它结构来促进类的动态扩展。2.3.2 iOS开发平台搭建(1) iOS开发环境 :Xcode是Apple自己开发的,只运行在Mac OS X平台下的IDE。使用Xcode来设计程序的逻辑,使用Interface Builder。来设计程序的界面。运行Xcode 3.0或以上的版本需要Mac OS 10.5及以上的系统版本。(2) iOS软件开发者证书介绍:苹果的开发工具是免费的,但是开发出来的程序需要在真机上运行或者发布到AppSto

32、re上(越狱的除外),需要购买苹果的授权。开发者证书工具就是Mac开发者计划成员申请和下载Mac应用程序签名证书的工具。购买费用是99美元。它涉及到苹果同意的条款和条件,并要签署和返回合同。只有注册后才能在iPhone上测试你的程序,而不是在屏幕上的模拟器。(3) 运行程序:当你做好准备调试你的application,你首先是通过Xcode的 Build来构建你的系统,如果Build没有错误的话,你有两种方式可以运行你的Application:iPhone Simulator 和 Device iPhone。3 系统总体设计3.1 系统模块划分根据初期的设计思想和需求分析的结果,根据本平台要达

33、到的功能要求,本系统大致可以抽象为菜单模块、天气查询模块和分享模块。3.1.1 菜单模块菜单模块需要实现的是一个类似经典的转盘电话中拨号转盘的旋转菜单效果。滑动菜单,菜单进行转动,转动的过程中,处于最前面的按钮按钮慢慢变大,处于后端的按钮变小。同样,点击转盘菜单上某个按钮,被点击的按钮会慢慢被转到最前面。由于转动的过程中,按钮会由大变小或者由小变大,所以这个动画有3D的效果。菜单模块效果图如图3-1所示。图3-1 菜单模块效果图3.1.2 天气查询模块天气查询模块是本系统的重点,该模块需要实现地理位置查询、天气查询以及折线图。此模块主要负责用Post方法向服务器发送请求并将获取到的Xml数据进

34、行解析,将解析到的数据加载到创建好的列表上。折线图则是利用iOS中比较复杂的画板显示,通过获取到的未来5天内的气温变化以折线形式显示在画板上,可以方便用户更直观的了解到未来的天气变化。此模块采用POST方法获取数据而不是采用GET方法是因为GET一般用于获取/查询 资源信息,而POST一般用于更新资源信息。 再进一步了解下他们两个的区别:(1) GET使用URL或Cookie传参。而POST将数据放在BODY中。(2) GET的URL会有长度上的限制,则POST的数据则可以非常大。(3) POST比GET安全,因为数据在地址栏上不可见。3.1.3 分享模块分享模块是本系统的一个吸引用户的亮点,

35、因为该模块选用了新浪微博平台。众所周知随着互联网的迅猛发展,微博客已经形成信息传播的主流,在国外最流行的微博客Twitter,而在国内新浪微博率先进入了市场,并取得了非常大的成功,而在用户量上也早已经突破3亿。虽然目前腾讯微博也在迅猛的发展并抢占市场,但在微博客的世界中新浪依然占据老大的位置,无可撼动。下面分析下本系统使用新浪微博的好处。(1) 能够快速大范围的传播信息。不用长篇大论节省时间,内容可以是现场记录,最新曝料,发感慨,晒心情,还可以分享自己的照片。(2) 用户可以通过手机随时随地发布相关消息,可以即写即发,即拍即发。(3) 新浪微博平台的用户基数比较大,所以用户在这里可以与更多的人

36、分享自己的微博。3.2 系统总体结构基于iOS的天气预报查询的系统设计与实现是一款比较实用的手机软件,系统设计包括技术和组织两个方面内容。先从技术角度看,系统设计必须有良好的运作机制、信息流程等;再从组织角度出发,便捷、时尚的天气预报查询应该更有吸引人的魅力。本节我们将介绍一下系统的总体结构。3.2.1 系统模块协作关系以技术角度看,本系统的3个模块互相协作,最终构建出一个基于iOS的天气预报查询的应用软件。整个系统以菜单模块为核心,天气查询模块负责显示天气情况,分享模块负责分享文字和图片到新浪微博平台。3.2.2 系统启动流程本系统将所有功能模块化,启动期间会顺序加载模块,并自动运行模块的初

37、始化代码。初始化完所有模块后再运行系统其他核心初始化代码。系统启动流程如图3-2所示。服务器启动系统查看是否已加载所有模块执行模块初始化方法加载下一个模块其他初始化代码图3-2 系统启动流程3.2.3 系统内容结构组织基于iOS的天气预报查询系统的设计与实现主要内容包括地点查询、天气查询、折线图、实景拍摄和分享。不但可以让用户更方便快捷的了解天气情况,还可以走在时尚的前沿进行发微博,与亲朋好友共同分享自己的周边的人、事、物以及自己的心情和状态。基于这些必须达到的功能需求,本系统的系统内容结构图如图3-3所示。主要功能实景拍摄分享天气预报地理位置查询天气查询趋势图分享微博图3-3 系统内容结构图

38、4 系统详细设计经过前期的需求分析、总体设计,已经为详细设计做好了准备。本章将描述所有模块的具体设计与实现,部分列出关键代码。本系统采用的是UINavigationController管理UIViewController,即用户可以从上一层界面进入下一层界面,在下一层界面处理完成以后又可以简单地返回到上一层界面,UINavigationController使用堆栈的方式来管理UIViewController10。 4.1 菜单模块4.1.1 菜单模块的主要功能菜单模块是程序的入口,也是用户第一眼所能看到的界面,所以一个软件是否能够吸引用户并留住用户,菜单的设计至关重要。传统的菜单基本都是静态界

39、面上布满一些静态的Button键或直接就是一个列表供用户选则,而本系统的菜单模块采用的则是经过动画处理后的动态界面,这样用户用起来会有一种全新的体验。菜单界面的每个按钮都对应一个进程的入口,当点击不同的Button时会进入不同的模块并执行该模块的程序。4.1.2 菜单模块的UI布局手机软件菜单的UI布局大体分为两种:第一种是在一个view上放置一些能进入下一级的Button;第二种则是列表形式,通过点击不同的cell进入对应的下一级界面。但是列表形式的界面最大的缺点就是不够灵活,所以本系统采用比较灵活的第一种布局方式。在view上设置一个大的背景图片,在每个Button上设置不同的背景图片,并

40、将Button存入数组里。4.1.3 菜单模块的动画效果实现随着移动互联网迅猛的发展,产品重点也渐渐的由UI变成UE,而动画效果则可以很好的解决UE的问题。动画效果提供了状态或页面转换时流畅的用户体验,在iOS系统中Core Animation提供了丰富的API来实现需要的动画效果。本系统实现的动画效果主要分为将控件连成一个圆、在Button按钮移动到后边时按钮要缩放并且点击不同按钮进入相对应的下一级界面。实现后的菜单效果图如图4-1所示。图4-1 菜单效果图4.2 天气查询模块4.2.1用POST方法进行请求数据 在iOS中向网络请求数据或者发送数据一般分为POST方法和GET方法两种(两种

41、方法的区别见第三章),本系统的天气查询模块采用的是POST方法向网络请求数据。本系统采用了比较常用的第三方库ASIHttpRequest进行数据请求。ASIHttpRequest用起来非常方便,主要实现里边的几个代理方法即可进行数据请求。首先要继承ASIHttpRequest的代理ASIHTTPRequestDelegate,然后在实现其代理方法。4.2.2处理请求到的数据 因为请求到的数据是XML数据,所以要想解析数据只能用解析XML数据的方法解析。本系统是通过NSXMLParser解析XML数据。NSXMLParser实例会逐行读取传入的XML数据,发现特定的信息后会向自己的委托对象发送消

42、息,例如,找到了新的元素标记或找到了位于元素内的字符串。NSXMLParser实例的委托对象需要根据应用上下文处理这些消息11。本系统还设计了加载齿轮效果,当获取并解析数据的时候屏幕中间会有加载齿轮在转动,同时用户不能进行操作。当解析后的数据加载到布置好的界面后加载齿轮停止转动,此时用户可以对系统进行操作。4.2.3模块功能实现及效果图 因为本系统设计的是用户需要先进行地理位置查询然后再进行天气查询,所以当用户点击查询天气的按钮时会先进入到地理位置查询的界面。地理位置查询主要有两个界面,一个是先按省查询,当用户选择好省份后点击cell会跳入到市、县级城市查询界面。具体效果图如下:(1) 按省级

43、查询效果图如图4-2所示。图4-2 按省级查询效果图(2) 按市、县级城市查询效果图如图4-3所示。图4-3 按市、县级城市查询效果图当用户选好想要查询的城市后会进入到天气查询界面。天气查询界面是用列表形式显示的,其中包括当日天气情况、未来5天内的天气情况以及温馨提示等内容。当用户点击第二个cell时会进入到“天气详情”界面;当用户点击第四个cell时会进入到“温馨提示”界面。具体效果图如下: (1) 天气查询效果图如图4-4所示。图4-4 天气查询效果图(2) 天气详情效果图如图4-5所示。图4-5 天气详情效果图(3) 温馨提示效果图如图4-6所示。图4-6 温馨提示效果图4.2.3创建画

44、板并画折线图 一个好的天气预报应用软件一定要有折线图这部分来更直观的显示出未来天气气温的变化以方便用户更清晰的了解到天气变化的信息。本系统同样也选取了这个功能并实现了折线图。当用户在天气查询界面点击右上角的“趋势”按钮时会进入到“五天内天气变化趋势”界面,这个界面是个折线图,可以让用户更直观的了解到未来5天内的气温变化。趋势图里共有两条折线:红颜色的线代表一天内的最高气温;黑颜色的折线代表一天内的最低气温。趋势图的横坐标带显示对应的日期,纵坐标显示的温度段。具体效果图如下:(4) 五天内天气变化趋势效果图如图4-7所示。图4-7 温馨提示效果图4.3 分享模块4.3.1实景拍摄 iPhone、

45、iPad和iPod touch提供了内置照相机和Photos应用程序,这在现在已经不足为奇。但鲜为人知的是,用户不但可以使用内置照相机拍摄照片,还可以从这些设备的照片库中选择照片12。苹果手机自iPhone4开始内置的照相机像素就已经达到500W,但却相当于其他手机的800W,这也是苹果手机吸引用户的原因之一。无论是在大街上、沙滩上、校园里甚者饭馆和公交车上都能看到有人拿着手机在拍附近的景物或者自拍,由此可见用户对手机相机的喜爱程度。目前也有很多应用软件开始注意到这一点并开始拓展新的模块用来方便用户,天气预报的应用软件也不例外,如墨迹天气的“实景拍摄”功能模块,并有自己的服务器用来方便用户分享自己拍摄的照片。当用户在菜单界面点击分享的按钮会进入到分享模块。分享模块的第一个界面“实景拍摄”界面,用来简单的告诉用户这个某块的功能,里边共有两个按钮,分别是“拍个照”和“分享下”。实景拍摄效果图如图4-8所示。图4-8 实景拍摄效果图4.3.2调用本地相机 本系统的分享模块需要实现调用本地相机的功能,iOS系统自带一种调用本地相机的方法,首先要继承代理方法UIImagePickerControllerDelegate,并在.m文件实现该代理方法。首先要进行判断设备是否支持相机,如果不支持将会弹出一个警告(如子在模拟器上运行该软

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服