毕业设计(论文)-基于IOS开发的装修家居APP的设计与实现

上传人:QQ40****828 文档编号:442523 上传时间:2018-10-02 格式:DOC 页数:28 大小:2.63MB
返回 下载 相关 举报
毕业设计(论文)-基于IOS开发的装修家居APP的设计与实现_第1页
第1页 / 共28页
毕业设计(论文)-基于IOS开发的装修家居APP的设计与实现_第2页
第2页 / 共28页
毕业设计(论文)-基于IOS开发的装修家居APP的设计与实现_第3页
第3页 / 共28页
点击查看更多>>
资源描述
河南科技学院2015 届本科毕业设计基于 IOS 开发的装修家居 APP 的设计与实现学生姓名: 所在系别: 信 息 工 程 所学专业: 信 息 工 程 导师姓名: 完成时间: 2015 - 5 10 基于 IOS 开发的装修家居 APP 的设计与实现摘 要随着科技的发展,移动智能终端人们的日常生活中扮演着越来越重要的角色。基于 iOS 系统的 iPhone 手机因其独特的设计和极佳的体验深受用户欢迎。作为当前最流行的操作平台,自然也存在着大量的应用服务需求。本课题是为一家装修公司设计的一款帮助人们可以随心所欲选择家居装修样式的移动应用。该APP 以 Object-C 语言编写,以 Xcode 为开发工具实现的。主要有五大界面:首页,分类图片,灵感,关注及设置界面。首页展示了设计师设计的当今流行的一些装修样板;分类界面以空间、风格、局部三种分类方式向用户详细介绍各种各样的装修方法;灵感界面就是用户记录自己的装修方法,以备以后装修时使用的界面;关注界面则是自己关注的设计师的最新动态;设置界面可以清空缓存,意见反馈,及 APP 介绍。精 致 优 秀 的 设 计 风 格 , 有 多 样 化 的 选 择 , 使 用 户 可 以更 加 赏 心 悦 目 地 体 验 本 软 件 的 服 务 。关 键 词 : Objective_c、 HTTP、 MySQL、 家 居DESIGN AND IMPLEMENTATION OFINFORMATION MANAGEMENT SYSTEMS GRADUATESAbstractWith the development of science and technology, mobile intelligent terminal plays an increasingly important role in daily life IPhone mobile phone based on the iOS system because of its unique design and excellent experience by users. As the most popular operating platform, there is also a lot of natural application service needs. This topic is for a decoration company design of a help people can choose home decoration style mobile application. The APP is written in Object-C language, and implemented by Xcode as the development tool There are five major interfaces: home, classification pictures, inspiration, attention and set the interface. Home page shows the designer of todays popular some decoration model; interface classification to space, style, local three classification to users with the various decoration method; interface inspired is users to record their own decoration method, to preparation after the renovation of the use of interface; interface is designers concern themselves with the latest developments; setting interface can empty the cache, feedback, and app. Exquisite and excellent design style, a variety of choices, users can experience more be good to hear or see the service of this software.Keywords: Objective_c, HTTP, MySQL, Household目录1. 绪论 12. iOS 系统、环境以及所用技术介绍 .22.1 iOS 系统简介 .22.3 开发环境 .32.4 应用程序框架 .32.5 设计模式 .42.6 第三方库 53. 功能模块的设计 .63.1 首页界面的设计 .63.2 分类界面 .73.3 灵感界面 .73.4 关注界面 .83.5 设置界面 .84. 功能模块的具体实现 .94.1 各个界面之间的切换 94.2 首页界面的具体实现逻辑及代码 .104.3 分类界面 134.4 灵感界面 154.5 关注界面 184.6 设置界面 205. 系统测试 .215.1 测试目的 215.2 测试方法 21小结 23参考文献 23致谢 2411. 绪论随着 IOS 的在当今社会流行,人们愈发体验到了其所带来的科技魅力,给我们的生活带来了越来越多的帮助,让我们的生活更加的简单。本课题研究的是设计一款 APP,人们通过这个手机 APP 就能找到自己理想的家居装修方法,让自己的居住环境更加的舒适。如今的移动应用开发产业让人眼花缭乱,主要的移动平台有:IOS、Android、Nokia Symbian、blackberry、Java ME、windows phone、mobile web。Android 以其开放性,多任务,大功能。画面流畅,硬件设备优良多样等各种优点,占只能机一大部分,然而它也存在着明显的不足,如:兼容性差,各种机型的配置不一样,以至于开发的时候出现各种版本。有些产品华而不实,用户体验差。Symbian 主要基于 C 语言的应用开发,支持多线程运行模式,但是开发代码量过大给开发人员造成很大的不便。就目前而言,三大平台(Android、Symbian、blackberry)的市场占有率也在逐渐下降,IOS 呈现平稳上升趋势。(1)APPstore 的支付模式成熟。不仅仅是这一模式的创新,更重要的人们用苹果手机只能从苹果商店下载应用,经过长时间的运营,APPstore 已经形成完备的支付模式,被大部分用户接受。(2)IOS 是用 object-C 这门语言开发。从全球的编程语言排行榜来看,虽然object-C 只有苹果一家公司使用,但是已经排名已经非常靠前了,可见 IOS 开发的普及性和欢迎程度,另外,基于 C 语言,运行效率更高计算机网络通信技术和 Internet 在最近几年来飞速发展,基于因特网的手机移动应用逐渐开始成为一种全新的功能需求,并且越来越收到人们的关注。由于移动应用具有简单性,随时随地等诸多优点,人们通过一部手机就可以操控一切,它有着传统计算机无法比拟的优点。而人们也在越来越追求更高的物质生活,因此,开发一个关于装修家居的移动应用就有必要了,你只需要通过一部手机,就可以看见多种多样的装修方式,多样化的选择,让你找到自己心怡的装修方法。并且你还可以将方法分享给你的朋友,让更多的人感受到移动应用,这个 APP 给人们带来的简便。基于 IOS 平台的装修软件已经有很多,经过分析,用户第一眼往往是一个软件的外观,一个好看的界面才能让用户以一种爱美之心去尝试,才能进一步了解一个软件的好坏,所以吸引眼球的界面是争取用户的第一步。因此,界面设计工作对应用程序来说非常重要,在界面上吸引了用户,才能进一步让用户体验应用程序中的功能,使用这个软件。因此,开发一种界面美观,用起来舒适,并且能给人们带来巨大作用的软件非常有必要。房屋装修设计是个系统工程,并非想像的那么简单。一般来说,每个人想法都有所不同,对家居的要求不尽相同。但真正能将自己的想法表达到位的,却少之又少。一个专业的房屋设计师,首先会充分了解装修业主的个性化需求,结合自己的专业知识、生活阅历,将装修业主理想中的家居通过设计图纸表现出来。其次,专业的设计师会利用自己对建材材料的了解,在设计时进行合理搭配,施工时推荐最佳材质。说简单些,就是利用设计元素,突出家居中的某几个亮点即可达到装修最佳效果,而不必堆砌过多的装修材料,可以为装修业主节省许多不必要的花费。第三,专业的设计师可以利用自己所累积的社会资源,为装修业主拿到单个消费者所拿不到材料价格,从而为业主节省许多金钱。随着苹果产品的不断推陈出新,相应的各类应用开发也越来越火爆。目前,2IOS 在智能手机应用下载量中占比 33%,IOS 平板电脑应用下载量占比 75%,由此可见,IOS 相关应用软件有着庞大的消费众群。而产品的升级换代,新产品的开发,都离不开手机软件开发团队强有力的支持。现在各大企业都在积极扩充研发队伍,像是游戏软件开发的岗位缺口就非常大。其 8-10 万的年薪,让很多年轻人加入到学习 IOS 开发的队伍中。 据对在读学习人群统计,目前大部分学员来自应届的大学生。众所周知,现在大学生就业难,薪水低。而学习 IOS 开发,不但可以掌握最新的技术,还可以找到薪水福利不错的工作,未来也有很大的发挥空间。另一部分人群,则是 IOS相关从业人员,随着技术的日新月异,希望能通过短时间集中培训,使技能得到提升,更好的应用到实际工作中。而目前关于装修的 App 少之又少,而人们又迫切需要这样一款软件,所以这样的软件具有很大的前景。 2. iOS 系统、环境以及所用技术介绍iOS 开发是以 xcode 为开发工具, OC 为编程语言开发的,是开发苹果移动设备应用的简称。2.1 iOS 系统简介iOS 是 iPad、iPhone、iPod touch 和 Apple TV 的操作系统。是由苹果公司开发的移动操作系统 。苹果公司最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,它也是以Darwin 为基础的,因此属于类 Unix 的商业操作系统。原本这个系统名为iPhone OS,因为 iPad,iPhone,iPod touch 都使用 iPhone OS,所以 2010WWDC大会上宣布改名为 iOS。iOS 具有简单的界面、令人惊叹的功能,以及超强的稳定性,已经成为 iPhone、iPad 和 iPod touch 的强大基础。尽管其他竞争对手一直努力地追赶, iOS 内置的众多技术和功能让设备始终保持着遥遥领先的地位。 Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。因此,Objective-C它完全兼容标准 C语言(C+对C语言的兼容仅在于大部分语法上,而在ABI(Applicat ion Binary Interface)上,还需要使用extern “C“这种显式声明来与C函数进行兼容),而在此基础上增加了面向对象编程语言特性以及Smalltalk消息机制。和C+不同,Objective-C不支持运算子重载(它不支持ad-hoc多型)。亦与C+不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。32.3 开发环境(1).Xcode 开发工具我们要掌握一门编程语言的话,都必须使用相应的开发工具进行学习和调试,比如用 eclipse 学习 Java。至于 Objective-C,我们可以使用苹果公司提供的开发工具-Xcode(2) Mac OS XXcode没有Windows版本的,只有Mac版本的,也就是只能跑在Mac OS X系统上。 因此,你要先拥有Mac OS X系统才能使用Xcode进行Objective-C的学习和iOS开发 。Mac OS X 是苹果公司为 Mac 系列产品开发的专属操作系统,目前搭载这款操作系统的设备有:MacBook、iMac、Mac mini。大概有 3 种途径可以获取 Mac OS X 系统:虚拟机、黑苹果、购买苹果设备。(3) 调试设备Xcode 自带了 iOS 模拟器功能,因此我们可以将开发好的应用程序,运行到模拟器上进行测试,不一定要买 iPhoneiPad 进行调试。当然,真机和模拟器肯定是区别的,因此在发布应用程序之前肯定要进行真机测试。(4) 开发者证书如果你是想把开发好的 iOS 程序发布到 App Store 上去卖,或者把程序运行到真机(iPhoneiPad)上,那么就必须有 iOS 个人开发者证书。这个需要向苹果买,一年 99$。如果纯粹是学习,不用买这个证书,一切开发都是免费的。2.4 应用程序框架应用程序主要包括以下几大框架:Foundation、UIKit 、Core Data 、 Core Graphics、 Core Animation 等几大框架。在你开发程序时,主要使用框架就是 Foundation 和 UIKit,因为它们包你需要的大部分东西,你的应用程序,UIKit 和其它的框架都是建立在 Foundation框架上Foundation 框架是用 Object-C 对 Core Foundation 框架里许多特性的封装。使用Foundation可以: 创建和管理集合,比如数组和字典 访问存储在应用程序里的图片和其它资源 创建和管理字符串 提交和接收通知 创建日期和时间对象 自动发现IP网络上的设备 操作URL流所有的iOS应用程序都基于UIKit,你不能是应用程序脱离这个框架。UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。使用UIKit可以:4 构建和管理你的用户界面 捕获触摸和基于移动的事件 呈现文字和web内容 优化你的多任务程序 创建定制的用户界面元素Core Data , Core Graphics, Core Animation,和 OpenGLES 框架都是高级的技术。所以这些框架对于你开发应用程序也是很重要的,它们都需要时间去学习和掌握。Core Data 框架管着理应用程序数据模型,提供的内建 SQLlite 技术可以高效的管理数据。Core Graphics 框架帮助你创建图形Core Animation 允许你创建高级的动画和虚拟效果OpenGL ES 框架提供 2D 和 3D 绘图工具2.5 设计模式(一)代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。列表row个数delegate自定义的delegate(二)观察者模式应用场景:一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息。优势:解耦合敏捷原则:接口隔离原则,开放-封闭原则实例:Notification通知中心,注册通知中心,任何位置可以发送消息,注册观察者的对象可以接收。kvo,键值对改变通知的观察者,平时基本没用过。(三)MVC模式应用场景:是一中非常古老的设计模式,通过数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分。优势:使系统,层次清晰,职责分明,易于维护敏捷原则:对扩展开放-对修改封闭实例:model-即数据模型,view-视图展示,controller进行UI展现和数据交互的逻辑控制。(四)单例模式5应用场景:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。优势:使用简单,延时求值,易于跨模块敏捷原则:单一职责原则实例:UIApplication sharedApplication。注意事项:确保使用者只能通过 getInstance方法才能获得,单例类的唯一实例。java,C+中使其没有公有构造函数,私有化并覆盖其构造函数。object c中,重写allocWithZone方法,保证即使用户用 alloc方法直接创建单例类的实例,返回的也只是此单例类的唯一静态变量。(五)策略模式应用场景:定义算法族,封装起来,使他们之间可以相互替换。优势:使算法的变化独立于使用算法的用户敏捷原则:接口隔离原则;多用组合,少用继承;针对接口编程,而非实现。实例:排序算法,NSArray的sortedArrayUsingSelector;经典的鸭子会叫,会飞案例。注意事项:1,剥离类中易于变化的行为,通过组合的方式嵌入抽象基类2,变化的行为抽象基类为,所有可变变化的父类3,用户类的最终实例,通过注入行为实例的方式,设定易变行为防止了继承行为方式,导致无关行为污染子类。完成了策略封装和可替换性。(六)工厂模式应用场景:工厂方式创建类的实例,多与proxy模式配合,创建可替换代理类。优势:易于替换,面向抽象编程,application只与抽象工厂和易变类的共性抽象类发生调用关系。敏捷原则:DIP依赖倒置原则实例:项目部署环境中依赖多个不同类型的数据库时,需要使用工厂配合proxy完成易用性替换注意事项:项目初期,软件结构和需求都没有稳定下来时,不建议使用此模式,因为其劣势也很明显,增 加了代码的复杂度,增加了调用层次,增加了内存负担。所以要注意防止模式的滥用。2.6 第三方库图片异步加载:SDWebImage网络通信库AFNetworkingMKNetworkKitASIHTTPRequest6网络状态检查:ReachabilityJSON:SBJSONJSONKitXML:TouchXMLSQLite:FMDB下拉刷新:MJRefreshSVPullToRefresh提示框:MBProgressHUD3. 功能模块的设计这个 App 由首页,分类图片,灵感,关注,设置,及个人信息六个界面组成,每个界面展示的都有明确的信息,让我们有多样化的选择。3.1 首页界面的设计首页由两部分组成,上方由是一个滚动视图,能够无限滚动,并且能够用手滑动,下方是一个列表,也能够滑动。首页展示的是装修后的家居图片,并且每张图片都有相应的文字作简单的介绍。每张图片都是能点击的,点进去是详情,详细介绍了如何装修,及这样装修的好处,图片也能都标记为喜欢,并收集。设计流程见图 3-1:图 3-1 首页设计流程首页滚动视图列表视图图片详情已登录未登录编辑操作登录界面73.2 分类界面这个界面通过分类来快速找到你想要的,房间哪个部分的装修图片。分为三大类:空间、局部、风格。每个大类里面又分为许多小类,客厅、衣帽间,餐厅、厨房、卫生间等等。点击不同的分类,我们能够进入到不同的装修图片展示界面。图片展示界面是一个列表,图片能够放大查看,并且也能够进行标记。设计流程见图 3-2:图 3-2 分类界面设计流程3.3 灵感界面在这个界面上我们可以创建格子,能给格子命名,并给格子配上自己喜欢的图片,能够进行重命名,删除等一些编辑操作。创建自己喜欢的装修方法,即灵感。在这个界面我们也能看到自己标注过的喜欢的图片,也能显示有多少人喜欢了这种装修方法,图片点进去是装修方法的详情,并且能够编辑,进行一些删除等操作。设计流程见图 3-3:分类空间风格局部客厅、餐厅、厨房等现代、中式、日式等吊顶、阳台、楼梯等图片详情编辑操作灵感灵感喜欢创建格子命名更换图片删除图片取消喜欢查看详情8图 3-3 灵感界面设计流程3.4 关注界面每一种装修方法作品都有相应的作者,如果我们关注了这个作者,那么我们在这个界面就能看到这个作者所有的作品,作品点进去也是详情界面,每张图片也能够标记为喜欢。并且,在这个界面,也能够看见别人使用这个 APP 的动态,有哪些人喜欢了哪些作品,看别人的装修习惯是什么样的。设计流程见图 3-4:图 3-4 关注界面设计流程3.5 设置界面这个界面显示自己的头像,昵称。在这个界面我们可以清空缓存,关于这个APP 的介绍,以及意见反馈,退出登录。设计流程见图 3-5:关注热门关注列表试图列表试图图片详情编辑操作设置头像昵称清空缓存给我评分意见反馈关于退出登录9图 3-5 设置界面设计流程4. 功能模块的具体实现见每个界面的具体实现根据设计图来做,包括各个界面之间的切换和每个界面的具体介绍及代码编写。4.1 各个界面之间的切换各个界面之间通过侧边栏来进行切换,点击相应的按钮可以进入到相应的界面,上图即为效果图,侧边栏用到了 ZYMenuController 这个第三方框架,将ZYMenuController 的对象作为 window 的根视图,代码实现为:ZYFirstViewController * firstViewController = ZYFirstViewController alloc initautorelease;UINavigationController * nav = UINavigationController alloc initWithRootViewController:firstViewController autorelease;ZYMenuController * menu = ZYMenuController alloc initWithRootViewController:nav leftViewController:leftViewController rightViewController:nil;self.window.rootViewController = menu;self.window makeKeyAndVisible;视图使用 tableView 写的,能够滑动,增强了用户的体验_tableView = UITableView alloc initWithFrame:CGRectMake(0, 120, self.view.frame.size.width, self.view.frame.size.height - 150);_tableView.delegate = self;_tableView.dataSource = self;_tableView.backgroundColor = UIColor clearColor;_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;self.view addSubview:_tableView;_tableView release;实际测试效果图见图 4-1:10图 4-1 界面切换效果4.2 首页界面的具体实现逻辑及代码(1)首页界面首页上方是一个能够无限循环滚动的滚动视图,用的 scrollView 实现,将button 加到 scrollView 上面,可点击,并也能够用手滑动。下方用 tableView实现,是一个列表视图。将上方的 scrollView 和下方的 tableView 放到一个大的 scrollView 上面,实现整个界面都能够滑动。tableView 是自定义的,能够满足设计的需求。代码实现为:/创建大scrollView_bigScrollView = UIScrollView allocinitWithFrame:CGRectMake(0,0, 320, self.view.frame.size.height);_bigScrollView.delegate = self;self.view addSubview:_bigScrollView;/屏幕上方的小scrollViewHttpEngine getAdvertisingRequestWithCompletionBlock:(NSMutableArray *array) self.scrollDataArray = array;_scrollView = UIScrollView alloc initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 160);/ _scrollView.backgroundColor = UIColor redColor;_scrollView.delegate = self;11_scrollView.pagingEnabled = YES;_scrollView.contentSize = CGSizeMake(self.view.frame.size.width*self.scrollDataArray.count, 170);_bigScrollView addSubview:_scrollView;实际测试效果图见图 4-2-1:图 4-2-1 首页效果(2)详情界面 详情界面主要使用自定义 tableView 实现,第一区显示的是大标题和作者的头像、昵称及时间。第二区显示的 简介,是对这个装修方法的简单介绍,并且这个高度要根据文字的多少自适应高度。第三区显示的是图片,即装修后的效果图。代码实现为:-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathUITableViewCell * cell = tableView dequeueReusableCellWithIdentifier:“Cell“;if(cell = nil)12cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:“Cell“;UIImageView * imageView = UIImageView alloc init;imageView.tag = 1;cell addSubview:imageView;imageView release;/根据文字多少算高度- (float)stringHeightWithString:(NSString *)string/ 计算文字宽高float height = string boundingRectWithSize:CGSizeMake(270, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:NSFontAttributeName:UIFont systemFontOfSize:14 context:nil.size.height;/ 向上取整return ceilf(height);实际测试效果图见图 4-2-2:图 4-2-2 详情界面效果134.3 分类界面从这个界面里能通过具体的分类来找到自己需要的装修设计图,并且能将这些装修图片能够标记为喜欢。(1) 分类首页这个页面总共分为三个大区,即空间、局部、风格。自己想看什么样的效果可从分类界面里面详细的选择,每一种都有不同的风格,让你有多样化的选择。通过自定义 tableView 实现。隐藏了系统自带的分割线,自己实现分割线这个功能。图片和文字放到一个数组里面,作为 tableView 的数据源数组-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathUITableViewCell * cell = tableView dequeueReusableCellWithIdentifier:“Cell“;if(cell = nil)cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:“Cell“ autorelease;/自定义imageView与label,否则图片太大UIImageView * imageView = UIImageView alloc initWithFrame:CGRectMake(10, 8, 30, 30);imageView.tag = 1;cell addSubview:imageView;imageView release;UILabel * label = UILabel alloc initWithFrame:CGRectMake(50, 5, 100, 30);label.tag = 2;cell addSubview:label;label release;UIImageView * imageView = (UIImageView *)cell viewWithTag:1;UILabel * label = (UILabel *)cell viewWithTag:2;label.text = self.textArrayindexPath.sectionindexPath.row;imageView.image = UIImage imageNamed:self.imageArrayindexPath.sectionindexPath.row;cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;return cell;实际测试效果图见图 4-3-1:14图 4-3-1 分类首页效果(2)分类图片界面通过两竖排的图片更为直观的来展示各种各样的装修样式。从服务器获得数据后,将数据分为两个数组,每一个数组作为每一竖排的数据源数组,自定义tableView 实现。HttpEngine getClassImageRequsetWithCategoryId:self.cate TagId:self.tag CompletionBlock:(NSMutableArray *array) self.dataArray = array;/ NSLog(“%“,self.dataArray);/将self.dataArray分到两个数组中,分别为cell上两个button的图片数据网址for(int i=0;iself.dataArray.count;i+)if(i%2=0)self.button1DataArray addObject:self.dataArrayi;elseself.button2DataArray addObject:self.dataArrayi;_tableView =UITableView alloc initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height-64);15_tableView.delegate = self;_tableView.dataSource = self;self.view addSubview:_tableView;_tableView release;return cell;实际测试效果图见图 4-3-2:图 4-3-2 分类图片界面效果4.4 灵感界面这个界面包括灵感和喜欢两个界面,灵感喜欢界面能够将自己灵感展示出来,喜欢界面能够看到自己已经标记为喜欢的图片(1) 灵感界面灵感界面展示的是自己创作的一些灵感,点击第一个方框即可以创建格子,将自己喜欢的装修图片放到格子上面。灵感和喜欢这两个界面的实现共用的时同16一个试图控制器,点击上面的按钮时,现将原有的视图移除,再将将要显示的视图添加到视图控制器上,从而实现这样的效果_seg = UISegmentedControl alloc initWithItems:segArray;_seg addTarget:self action:selector(segClick:) forControlEvents:UIControlEventValueChanged;_seg.selectedSegmentIndex = 0;_seg.tintColor = UIColor redColor;self.navigationItem.titleView = _seg;self.viewController = ZYGeziViewController alloc init;self.view addSubview:self.viewController.view;-(void)segClick:(UISegmentedControl *)segif(seg.selectedSegmentIndex = 0)for(UIView * view in self.view.subviews)view removeFromSuperview;self.navigationItem.rightBarButtonItem = UIBarButtonItem alloc initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:selector(itemClick);self.viewController = ZYGeziViewController alloc init;self.view addSubview:self.viewController.view;elseself.viewController = ZYLikeViewController alloc init;self.view addSubview:self.viewController.view;self.navigationItem.rightBarButtonItem = nil;实际测试效果图见图 4-4-1:17图 4-4-1 灵感界面效果(2)喜欢界面在这个界面我们能看到自己所喜欢的装修样式图片,以及共有多少人喜欢了这个装修样式,并且能够编辑,即删除。这个界面通过自定义 tableview 实现:-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathUITableViewCell * cell = tableView dequeueReusableCellWithIdentifier:“Cell“;if(cell = nil)cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:“Cell“ autorelease;/ UIImageView * imageView2 = UIImageView alloc initWithFrame:CGRectMake(10, imageView.frame.size.height, 60, 25);/ imageView2.tag = 3;18/ imageView2.image = UIImage imageNamed:“v110_04Class_liked_b.png“;/ cell addSubview:imageView2;ZYLikedPicList * picList = self.dataArrayindexPath.row;NSLog(“%f“,picList.picId);UIImageView * imageView = (UIImageView *)cell viewWithTag:1;UILabel * label = (UILabel *)cell viewWithTag:2;ZYCustonButton * button = (ZYCustonButton *)cell viewWithTag:3;button.tag = picList.picId;button addTarget:self action:selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside;button setBackgroundImage:UIImage imageNamed:“v110_04Class_liked_b.png“ forState:UIControlStateNormal;imageView setImageWithURL:NSURL URLWithString:picList.picUrl placeholderImage:UIImage imageNamed:“v1_de_nopic2x.png“;label.text = NSString stringWithFormat:“%d 人喜欢了“,(int)picList.likeTimes;return cell;实际测试效果图见图 4-4-2:图 4-4-2 喜欢界面效果4.5 关注界面这个界面能过获得不同的人使用这个 APP 的实时动态,比如某个人关注了某19个装修方法图片,通过这个界面我们就能看到这个人得昵称、头像及装修的图片。这个界面的实现原理和灵感界面大体相似。不过使用的同一个控制器,不同的界面上刷新不同的数据,也是通过自定义 tableview 实现的_tableView addPullToRefreshWithActionHandler:NSLog(“下拉刷新“);currentIndex = 0;self requestData;_tableView addInfiniteScrollingWithActionHandler:NSLog(“上拉加载“);currentIndex +;self requestData;/首次进入刷新状态_tableView triggerPullToRefresh;-(void)requestDataif(_seg.selectedSegmentIndex = 0)NSLog(“qqq“);HttpEngine getHotInfoRequestWithpage:(currentIndex+1) CompletionBlock:(NSMutableArray *array)if (currentIndex = 0)self.dataArray removeAllObjects;self.dataArray addObjectsFromArray:array;/ NSLog(“%d %d“,self.dataArray.count,array.count);_tableView reloadData;实际测试效果图见图 4-5-1:20图 4-5-1 关注界面效果4.6 设置界面这个界面展示了用户的头像,昵称,还有一些 APP 的常用功能,即清空缓存,版本检测,评分,关于 APP 等。通过自定义 tableview 实现。-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPathif(indexPath.section =0)ZYPersonViewController * personController = ZYPersonViewController alloc init;personController.personInfo = self.personInfo;self.navigationController pushViewController:personController animated:YES;personController release;if(indexPath.section = 2)if(indexPath.row=2)21ZYPingeViewController * viewController = ZYPingeViewController alloc init;self.navigationController pushViewController:viewController animated:YES;实际测试效果图见图 4-6-1图 4-6-1 设置界面效果5. 系统测试5.1 测试目的在项目完成后进行系统测试,可以保证所开发应用的流畅性、无措性、满足需求性。系统测试是针对整个产品系统进行的测试,过程中发现问题之后,需要开发人们找出错误原因和位置并改正。也不仅仅是为了发现系统缺陷和错误,也是为了对系统整体质量水平进行度量和评估。在开发软件系统的过程中,可能需要面对许多复杂繁琐的问题,在软件开发生存周期的每个阶段都会不可避免的产生错误。开发人员要在每个阶段完成之前进行严格的技术审查,尽可能早的发现并纠正错误,以达到晚上的效果。225.2 测试方法测试程序运用最多就是所谓的白盒测试和黑盒测试了。白盒测试就是对软件系统的相关代码进行详细的测试,查看代码的正确性和书写规则是否正确等。黑盒测试是根据软件的规格进行的测试,黑盒测试和白盒测试正好相反,不需要考虑软件内部的组成结构,只需要对软件整体进行测试。黑盒测试需要软件测试人员从用户的角度来进行各项功能测试,来检测系统的可行性和可操作性,同时观察软件中存在的各种错误和缺陷。黑盒测试的方法使测试人员只关心系统是否能够满足用户的需求以及各种需求是如何实现的,并不关心系统的设计过程。对于本 APP 的测试,主要从以下几个方面进行:(1)代码测试:这款装修家居 APP 的代码测试采用的是正常数据、异常数据和错误数据轮换进行测试的方法。例如:在意见反馈界面输入正确的文字、输入很大量的文字、或将图片当成内容添加到输入框里,查看程序的运行情况。经检测,代码的正确性和书写规范都符合要求,达到了预期的效果。(2)程序功能测试:对这款 APP 进行大量的相同内容的操作,禁行基本功能的体验,查看是否完成了基本功能。经过测试,本 APP 的基本功能运行正常,符合项目的设计需求。(3)分调和总调结合测试:该测试时贯穿于整个系统测试思想中的,从开始涉及每一个功能模块开始,到最终完成系统的整体功能模块设计,整个过程中,针对每个功能模块进行适当的测试与修改,最后再将所有功能模块集成在整个系统中进行综合测试。23小结本 APP 采 用 OC 语 言 编 写 , 以 Xcode 为 开 发 工 具 , 遵 循 Http 通 信 协 议 ,采 用 MVC 设 计 模 式 设 计 实 现 的 。这 个 APP 的 功 能 基 本 满 足 了 用 户 的 所 有 需 求 , 但 是 还 有 一 些 不 完 善 的 地方 , 比 如 这 个 APP 没 有 推 送 功 能 , 无 法 增 强 用 户 的 粘 合 性 ; 分 类 界 面 用 户 无法 通 过 搜 索 功 能 来 搜 索 自 己 想 要 的 装 修 方 式 , 所 以 后 期 还 需 要 做 很 多 的 工 作来 完 善 这 个 应 用 。 这 个 APP 的 实 现 不 仅 仅 是 对 自 己 的 学 习 成 果 的 检 验 , 更 是最 自 己 的 一 个 提 升 。 有 很 多 功 能 只 有 自 己 亲 身 实 现 出 来 才 能 更 好 理 解 这 个 知识 , 让 自 己 的 能 力 得 到 提 升 。 比 如 在 详 情 界 面 中 , 有 两 种 表 , 一 种 是 文 字 性的 , 一 种 是 图 片 性 的 , 当 重 用 这 两 种 表 时 怎 么 区 分 就 不 清 楚 了 。 因 此 , 还 要多 加 练 习 才 能 弥 补 自 己 在 动 手 能 力 上 的 缺 陷 , 更 加 完 善 自 己 的 程 序 功 能 。参考文献1 Apple Developer,Apple 文档。2 张亦航,iOS 开发系列之 C/Objective-C 语言基础,北京:北京人民出版社,20113 美 stephenG.Kochan. Programming in Objective-C 2.0M ,北京:机械工业出版社 20104 美Aaron Hillegas. 苹果开发之 Cocoa 编程M ,北京:电子工业出版社.20145 曾源.IOS 编程实战宝典M,北京:清华大学出版社 20146 高俊峰.循序渐进服务器基本知识M,北京:机械工业出版社 201324致谢从毕业设计的选题、任务书的书写、毕业设计阶段到毕业论文的完成,这长达半年的时间里,使我对系统开发的整个流程有了更深刻的认识,对本专业的基本理论、专业知识和基本技术进行了梳理,并有了更深入的了解,使我在四年中所学到的知识得到了升华,真正达到了学以致用。岁月如梭,如歌。转眼间,四年的大学求学生活即将结束,站在毕业的门槛上,回首往昔,奋斗和辛劳成为丝丝的记忆,甜美与欢笑也都尘埃落定。河南科技学院以其优良的学习风气、严谨的科研氛围教我求学,以其博大包容的情怀胸襟、浪漫充实的校园生活育我成人。值此毕业论文完成之际,我谨向所有关心、爱护、帮助我的人们表示最诚挚的感谢与最美好的祝愿。本次毕业设计是在洪新华老师指导下完成的。在设计过程中,洪老师仔细耐心地对我的毕业设计任务及内容进行及时指导,并在最后对成果系统的设计说明书做出了全面、合理、仔细得修改批注,竭尽全力帮助我完成本次的毕业设计任务。在这里,忠心表示对洪老师的悉心关怀和耐心指导的无限感谢与感恩。更重要的是,在设计的过程,洪老师所具备的严谨求真为学的务实精神,也是我之后无论是在学习还是在工作中的学习榜样。最后,我要衷心感谢各位老师和同学们在我的设计过程中给予我的极大帮助使我能够及时、顺利地完成此次的毕业设计。最后再一次在这里也对所有教过我的老师们表示衷心的感谢
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!