




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2015届本科毕业设计基于IOS开发的装修家居APP的设计与实现学生姓名:所在系别:信息工程所学专业:信息工程导师姓名:完成时间:2015-5–10基于IOS开发的装修家居APP的设计与实现摘要随着科技的发展,移动智能终端人们的日常生活中扮演着越来越重要的角色。基于iOS系统的iPhone手机因其独特的设计和极佳的体验深受用户欢迎。作为当前最流行的操作平台,自然也存在着大量的应用服务需求。本课题是为一家装修公司设计的一款帮助人们可以随心所欲选择家居装修样式的移动应用。该APP以Object-C语言编写,以Xcode为开发工具实现的。主要有五大界面:首页,分类图片,灵感,关注及设置界面。首页展示了设计师设计的当今流行的一些装修样板;分类界面以空间、风格、局部三种分类方式向用户详细介绍各种各样的装修方法;灵感界面就是用户记录自己的装修方法,以备以后装修时使用的界面;关注界面则是自己关注的设计师的最新动态;设置界面可以清空缓存,意见反馈,及APP介绍。精致优秀的设计风格,有多样化的选择,使用户可以更加赏心悦目地体验本软件的服务。关键词:Objective_c、HTTP、MySQL、家居DESIGNANDIMPLEMENTATIONOFINFORMATIONMANAGEMENTSYSTEMSGRADUATESAbstractWiththedevelopmentofscienceandtechnology,mobileintelligentterminalplaysanincreasinglyimportantroleindailylife..IPhonemobilephonebasedontheiOSsystembecauseofitsuniquedesignandexcellentexperiencebyusers.Asthemostpopularoperatingplatform,thereisalsoalotofnaturalapplicationserviceneeds.Thistopicisforadecorationcompanydesignofahelppeoplecanchoosehomedecorationstylemobileapplication.TheAPPiswritteninObject-Clanguage,andimplementedbyXcodeasthedevelopmenttool..Therearefivemajorinterfaces:home,classificationpictures,inspiration,attentionandsettheinterface.Homepageshowsthedesigneroftoday'spopularsomedecorationmodel;interfaceclassificationtospace,style,localthreeclassificationtouserswiththevariousdecorationmethod;interfaceinspiredisuserstorecordtheirowndecorationmethod,topreparationaftertherenovationoftheuseofinterface;interfaceisdesignersconcernthemselveswiththelatestdevelopments;settinginterfacecanemptythecache,feedback,andapp.Exquisiteandexcellentdesignstyle,avarietyofchoices,userscanexperiencemorebegoodtohearorseetheserviceofthissoftware.Keywords:Objective_c,HTTP,MySQL,Household目录TOC\o"1-2"\h\z\u\h1.绪论 1.绪论随着IOS的在当今社会流行,人们愈发体验到了其所带来的科技魅力,给我们的生活带来了越来越多的帮助,让我们的生活更加的简单。本课题研究的是设计一款APP,人们通过这个手机APP就能找到自己理想的家居装修方法,让自己的居住环境更加的舒适。如今的移动应用开发产业让人眼花缭乱,主要的移动平台有:IOS、Android、NokiaSymbian、blackberry、JavaME、windowsphone、mobileweb。Android以其开放性,多任务,大功能。画面流畅,硬件设备优良多样等各种优点,占只能机一大部分,然而它也存在着明显的不足,如:兼容性差,各种机型的配置不一样,以至于开发的时候出现各种版本。有些产品华而不实,用户体验差。Symbian主要基于C语言的应用开发,支持多线程运行模式,但是开发代码量过大给开发人员造成很大的不便。就目前而言,三大平台(Android、Symbian、blackberry)的市场占有率也在逐渐下降,IOS呈现平稳上升趋势。(1)APPstore的支付模式成熟。不仅仅是这一模式的创新,更重要的人们用苹果手机只能从苹果商店下载应用,经过长时间的运营,APPstore已经形成完备的支付模式,被大部分用户接受。(2)IOS是用object-C这门语言开发。从全球的编程语言排行榜来看,虽然object-C只有苹果一家公司使用,但是已经排名已经非常靠前了,可见IOS开发的普及性和欢迎程度,另外,基于C语言,运行效率更高计算机网络通信技术和Internet在最近几年来飞速发展,基于因特网的手机移动应用逐渐开始成为一种全新的功能需求,并且越来越收到人们的关注。由于移动应用具有简单性,随时随地等诸多优点,人们通过一部手机就可以操控一切,它有着传统计算机无法比拟的优点。而人们也在越来越追求更高的物质生活,因此,开发一个关于装修家居的移动应用就有必要了,你只需要通过一部手机,就可以看见多种多样的装修方式,多样化的选择,让你找到自己心怡的装修方法。并且你还可以将方法分享给你的朋友,让更多的人感受到移动应用,这个APP给人们带来的简便。基于IOS平台的装修软件已经有很多,经过分析,用户第一眼往往是一个软件的外观,一个好看的界面才能让用户以一种爱美之心去尝试,才能进一步了解一个软件的好坏,所以吸引眼球的界面是争取用户的第一步。因此,界面设计工作对应用程序来说非常重要,在界面上吸引了用户,才能进一步让用户体验应用程序中的功能,使用这个软件。因此,开发一种界面美观,用起来舒适,并且能给人们带来巨大作用的软件非常有必要。房屋装修设计是个系统工程,并非想像的那么简单。一般来说,每个人想法都有所不同,对家居的要求不尽相同。但真正能将自己的想法表达到位的,却少之又少。一个专业的房屋设计师,首先会充分了解装修业主的个性化需求,结合自己的专业知识、生活阅历,将装修业主理想中的家居通过设计图纸表现出来。其次,专业的设计师会利用自己对建材材料的了解,在设计时进行合理搭配,施工时推荐最佳材质。说简单些,就是利用设计元素,突出家居中的某几个亮点即可达到装修最佳效果,而不必堆砌过多的装修材料,可以为装修业主节省许多不必要的花费。第三,专业的设计师可以利用自己所累积的社会资源,为装修业主拿到单个消费者所拿不到材料价格,从而为业主节省许多金钱。随着苹果产品的不断推陈出新,相应的各类应用开发也越来越火爆。目前,IOS在智能手机应用下载量中占比33%,IOS平板电脑应用下载量占比75%,由此可见,IOS相关应用软件有着庞大的消费众群。而产品的升级换代,新产品的开发,都离不开手机软件开发团队强有力的支持。现在各大企业都在积极扩充研发队伍,像是游戏软件开发的岗位缺口就非常大。其8-10万的年薪,让很多年轻人加入到学习IOS开发的队伍中。据对在读学习人群统计,目前大部分学员来自应届的大学生。众所周知,现在大学生就业难,薪水低。而学习IOS开发,不但可以掌握最新的技术,还可以找到薪水福利不错的工作,未来也有很大的发挥空间。另一部分人群,则是IOS相关从业人员,随着技术的日新月异,希望能通过短时间集中培训,使技能得到提升,更好的应用到实际工作中。而目前关于装修的App少之又少,而人们又迫切需要这样一款软件,所以这样的软件具有很大的前景。2.iOS系统、环境以及所用技术介绍iOS开发是以xcode为开发工具,OC为编程语言开发的,是开发苹果移动设备应用的简称。2.1iOS系统简介iOS是iPad、iPhone、iPodtouch和AppleTV的操作系统。是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等产品上。iOS与苹果的MacOSX操作系统一样,它也是以Darwin为基础的,因此属于类Unix的商业操作系统。原本这个系统名为iPhoneOS,因为iPad,iPhone,iPodtouch都使用iPhoneOS,所以2010WWDC大会上宣布改名为iOS。iOS具有简单的界面、令人惊叹的功能,以及超强的稳定性,已经成为iPhone、iPad和iPodtouch的强大基础。尽管其他竞争对手一直努力地追赶,iOS内置的众多技术和功能让设备始终保持着遥遥领先的地位。Objective-C,通常写作ObjC和较少用的ObjectiveC或Obj-C,是扩充C的面向对象编程语言。Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。因此,Objective-C它完全兼容标准C语言(C++对C语言的兼容仅在于大部分语法上,而在ABI(ApplicationBinaryInterface)上,还需要使用extern"C"这种显式声明来与C函数进行兼容),而在此基础上增加了面向对象编程语言特性以及Smalltalk消息机制。和C++不同,Objective-C不支持运算子重载(它不支持ad-hoc多型)。亦与C++不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。2.3开发环境.Xcode开发工具我们要掌握一门编程语言的话,都必须使用相应的开发工具进行学习和调试,比如用eclipse学习Java。至于Objective-C,我们可以使用苹果公司提供的开发工具XcodeMacOSXXcode没有Windows版本的,只有Mac版本的,也就是只能跑在MacOSX系统上。因此,你要先拥有MacOSX系统才能使用Xcode进行Objective-C的学习和iOS开发。MacOSX是苹果公司为Mac系列产品开发的专属操作系统,目前搭载这款操作系统的设备有:MacBook、iMac、Macmini。大概有3种途径可以获取MacOSX系统:虚拟机、黑苹果、购买苹果设备。调试设备Xcode自带了iOS模拟器功能,因此我们可以将开发好的应用程序,运行到模拟器上进行测试,不一定要买iPhone\iPad进行调试。当然,真机和模拟器肯定是区别的,因此在发布应用程序之前肯定要进行真机测试。开发者证书如果你是想把开发好的iOS程序发布到AppStore上去卖,或者把程序运行到真机(iPhone\iPad)上,那么就必须有iOS个人开发者证书。这个需要向苹果买,一年99$。如果纯粹是学习,不用买这个证书,一切开发都是免费的。2.4应用程序框架应用程序主要包括以下几大框架:Foundation、UIKit、CoreData、CoreGraphics、CoreAnimation等几大框架。在你开发程序时,主要使用框架就是Foundation和UIKit,因为它们包你需要的大部分东西,你的应用程序,UIKit和其它的框架都是建立在Foundation框架上Foundation框架是用Object-C对CoreFoundation框架里许多特性的封装。使用Foundation可以:创建和管理集合,比如数组和字典访问存储在应用程序里的图片和其它资源创建和管理字符串提交和接收通知创建日期和时间对象自动发现IP网络上的设备操作URL流所有的iOS应用程序都基于UIKit,你不能是应用程序脱离这个框架。UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。使用UIKit可以:构建和管理你的用户界面捕获触摸和基于移动的事件呈现文字和web内容优化你的多任务程序创建定制的用户界面元素CoreData,CoreGraphics,CoreAnimation,和OpenGLES框架都是高级的技术。所以这些框架对于你开发应用程序也是很重要的,它们都需要时间去学习和掌握。CoreData框架管着理应用程序数据模型,提供的内建SQLlite技术可以高效的管理数据。CoreGraphics框架帮助你创建图形CoreAnimation允许你创建高级的动画和虚拟效果OpenGLES框架提供2D和3D绘图工具2.5设计模式代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。优势:解耦合敏捷原则:开放-封闭原则实例:tableview的数据源delegate,通过和protocol的配合,完成委托诉求。列表row个数delegate自定义的delegate观察者模式应用场景:一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息。优势:解耦合敏捷原则:接口隔离原则,开放-封闭原则实例:Notification通知中心,注册通知中心,任何位置可以发送消息,注册观察者的对象可以接收。kvo,键值对改变通知的观察者,平时基本没用过。MVC模式应用场景:是一中非常古老的设计模式,通过数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分。优势:使系统,层次清晰,职责分明,易于维护敏捷原则:对扩展开放-对修改封闭实例:model-即数据模型,view-视图展示,controller进行UI展现和数据交互的逻辑控制。单例模式应用场景:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。优势:使用简单,延时求值,易于跨模块敏捷原则:单一职责原则实例:[UIApplicationsharedApplication]。注意事项:确保使用者只能通过getInstance方法才能获得,单例类的唯一实例。java,C++中使其没有公有构造函数,私有化并覆盖其构造函数。objectc中,重写allocWithZone方法,保证即使用户用alloc方法直接创建单例类的实例,返回的也只是此单例类的唯一静态变量。策略模式应用场景:定义算法族,封装起来,使他们之间可以相互替换。优势:使算法的变化独立于使用算法的用户敏捷原则:接口隔离原则;多用组合,少用继承;针对接口编程,而非实现。实例:排序算法,NSArray的sortedArrayUsingSelector;经典的鸭子会叫,会飞案例。注意事项:1,剥离类中易于变化的行为,通过组合的方式嵌入抽象基类2,变化的行为抽象基类为,所有可变变化的父类3,用户类的最终实例,通过注入行为实例的方式,设定易变行为防止了继承行为方式,导致无关行为污染子类。完成了策略封装和可替换性。工厂模式应用场景:工厂方式创建类的实例,多与proxy模式配合,创建可替换代理类。优势:易于替换,面向抽象编程,application只与抽象工厂和易变类的共性抽象类发生调用关系。敏捷原则:DIP依赖倒置原则实例:项目部署环境中依赖多个不同类型的数据库时,需要使用工厂配合proxy完成易用性替换注意事项:项目初期,软件结构和需求都没有稳定下来时,不建议使用此模式,因为其劣势也很明显,增加了代码的复杂度,增加了调用层次,增加了内存负担。所以要注意防止模式的滥用。2.6第三方库图片异步加载:SDWebImage网络通信库AFNetworkingMKNetworkKitASIHTTPRequest网络状态检查:ReachabilityJSON:SBJSONJSONKitXML:TouchXMLSQLite:FMDB下拉刷新:MJRefreshSVPullToRefresh提示框:MBProgressHUD3.功能模块的设计这个App由首页,分类图片,灵感,关注,设置,及个人信息六个界面组成,每个界面展示的都有明确的信息,让我们有多样化的选择。3.1首页界面的设计首页由两部分组成,上方由是一个滚动视图,能够无限滚动,并且能够用手滑动,下方是一个列表,也能够滑动。首页展示的是装修后的家居图片,并且每张图片都有相应的文字作简单的介绍。每张图片都是能点击的,点进去是详情,详细介绍了如何装修,及这样装修的好处,图片也能都标记为喜欢,并收集。设计流程见图3-1:首页滚动视图列表视图图片详情已登录未登录编辑操作登录界面图3-1首页设计流程3.2分类界面这个界面通过分类来快速找到你想要的,房间哪个部分的装修图片。分为三大类:空间、局部、风格。每个大类里面又分为许多小类,客厅、衣帽间,餐厅、厨房、卫生间等等。点击不同的分类,我们能够进入到不同的装修图片展示界面。图片展示界面是一个列表,图片能够放大查看,并且也能够进行标记。设计流程见图3-2:分类空间风格局部客厅、餐厅、厨房等现代、中式、日式等吊顶、阳台、楼梯等图片详情编辑操作图3-2分类界面设计流程3.3灵感界面在这个界面上我们可以创建格子,能给格子命名,并给格子配上自己喜欢的图片,能够进行重命名,删除等一些编辑操作。创建自己喜欢的装修方法,即灵感。在这个界面我们也能看到自己标注过的喜欢的图片,也能显示有多少人喜欢了这种装修方法,图片点进去是装修方法的详情,并且能够编辑,进行一些删除等操作。设计流程见图3-3:灵感灵感喜欢创建格子命名更换图片删除图片取消喜欢查看详情图3-3灵感界面设计流程3.4关注界面每一种装修方法作品都有相应的作者,如果我们关注了这个作者,那么我们在这个界面就能看到这个作者所有的作品,作品点进去也是详情界面,每张图片也能够标记为喜欢。并且,在这个界面,也能够看见别人使用这个APP的动态,有哪些人喜欢了哪些作品,看别人的装修习惯是什么样的。设计流程见图3-4:关注关注热门关注列表试图列表试图图片详情编辑操作图3-4关注界面设计流程3.5设置界面这个界面显示自己的头像,昵称。在这个界面我们可以清空缓存,关于这个APP的介绍,以及意见反馈,退出登录。设计流程见图3-5:设置设置头像昵称清空缓存给我评分意见反馈关于退出登录图3-5设置界面设计流程4.功能模块的具体实现见每个界面的具体实现根据设计图来做,包括各个界面之间的切换和每个界面的具体介绍及代码编写。4.1各个界面之间的切换各个界面之间通过侧边栏来进行切换,点击相应的按钮可以进入到相应的界面,上图即为效果图,侧边栏用到了ZYMenuController这个第三方框架,将ZYMenuController的对象作为window的根视图,代码实现为:ZYFirstViewController*firstViewController=[[[ZYFirstViewControlleralloc]init]autorelease];UINavigationController*nav=[[[UINavigationControlleralloc]initWithRootViewController:firstViewController]autorelease];ZYMenuController*menu=[[ZYMenuControlleralloc]initWithRootViewController:navleftViewController:leftViewControllerrightViewController:nil];self.window.rootViewController=menu;[self.windowmakeKeyAndVisible];视图使用tableView写的,能够滑动,增强了用户的体验_tableView=[[UITableViewalloc]initWithFrame:CGRectMake(0,120,self.view.frame.size.width,self.view.frame.size.height-150)];_tableView.delegate=self;_tableView.dataSource=self;_tableView.backgroundColor=[UIColorclearColor];_tableView.separatorStyle=UITableViewCellSeparatorStyleNone;[self.viewaddSubview:_tableView];[_tableViewrelease];实际测试效果图见图4-1:图4-1界面切换效果4.2首页界面的具体实现逻辑及代码(1)首页界面首页上方是一个能够无限循环滚动的滚动视图,用的scrollView实现,将button加到scrollView上面,可点击,并也能够用手滑动。下方用tableView实现,是一个列表视图。将上方的scrollView和下方的tableView放到一个大的scrollView上面,实现整个界面都能够滑动。tableView是自定义的,能够满足设计的需求。代码实现为://创建大scrollView_bigScrollView=UIScrollView[[alloc]initWithFrame:CGRectMake(0,0,320,self.view.frame.size.height)];_bigScrollView.delegate=self;[self.viewaddSubview:_bigScrollView];//屏幕上方的小scrollView[HttpEnginegetAdvertisingRequestWithCompletionBlock:^(NSMutableArray*array){self.scrollDataArray=array;_scrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,self.view.frame.size.width,160)];//_scrollView.backgroundColor=[UIColorredColor];_scrollView.delegate=self;_scrollView.pagingEnabled=YES;_scrollView.contentSize=_scrollView.pagingEnabled=YES;_scrollView.contentSize=CGSizeMake(self.view.frame.size.width*self.scrollDataArray.count,170);[_bigScrollViewaddSubview:_scrollView];实际测试效果图见图4-2-1:图4-2-1首页效果(2)详情界面详情界面主要使用自定义tableView实现,第一区显示的是大标题和作者的头像、昵称及时间。第二区显示的简介,是对这个装修方法的简单介绍,并且这个高度要根据文字的多少自适应高度。第三区显示的是图片,即装修后的效果图。代码实现为:-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{UITableViewCell*cell=[tableViewdequeueReusableCellWithIdentifier:@"Cell"];if(cell==nil){cell=[[UITableViewCellalloc]{cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:@"Cell"];UIImageView*imageView=[[UIImageViewalloc]init];imageView.tag=1;[celladdSubview:imageView];[imageViewrelease];}}//根据文字多少算高度-(float)stringHeightWithString:(NSString*)string{//计算文字宽高floatheight=[stringboundingRectWithSize:CGSizeMake(270,MAXFLOAT)options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:14]}context:nil].size.height;//向上取整returnceilf(height);}实际测试效果图见图4-2-2:图4-2-2详情界面效果4.3分类界面从这个界面里能通过具体的分类来找到自己需要的装修设计图,并且能将这些装修图片能够标记为喜欢。(1)分类首页这个页面总共分为三个大区,即空间、局部、风格。自己想看什么样的效果可从分类界面里面详细的选择,每一种都有不同的风格,让你有多样化的选择。通过自定义tableView实现。隐藏了系统自带的分割线,自己实现分割线这个功能。图片和文字放到一个数组里面,作为tableView的数据源数组-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{UITableViewCell*cell=[tableViewdequeueReusableCellWithIdentifier:@"Cell"];if(cell==nil){cell=[[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:@"Cell"]autorelease];//自定义imageView与label,否则图片太大UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(10,8,30,30)];imageView.tag=1;[celladdSubview:imageView];[imageViewrelease];UILabel*label=[[UILabelalloc]initWithFrame:CGRectMake(50,5,100,30)];label.tag=2;[celladdSubview:label];[labelrelease];}UIImageView*imageView=(UIImageView*)[cellviewWithTag:1];UILabel*label=(UILabel*)[cellviewWithTag:2];label.text=self.textArray[indexPath.section][indexPath.row];imageView.image=[UIImageimageNamed:self.imageArray[indexPath.section][indexPath.row]];cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;returncell;}实际测试效果图见图4-3-1:图4-3-1分类首页效果(2)分类图片界面通过两竖排的图片更为直观的来展示各种各样的装修样式。从服务器获得数据后,将数据分为两个数组,每一个数组作为每一竖排的数据源数组,自定义tableView实现。[HttpEnginegetClassImageRequsetWithCategoryId:self.cateTagId:self.tagCompletionBlock:^(NSMutableArray*array){self.dataArray=array;//NSLog(@"%@",self.dataArray);//将self.dataArray分到两个数组中,分别为cell上两个button的图片数据网址for(inti=0;i<self.dataArray.count;i++){if(i%2==0){[self.button1DataArrayaddObject:self.dataArray[i]];}else{[self.button2DataArrayaddObject:self.dataArray[i]];}}_tableView=[[UITableViewalloc]initWithFrame:CGRectMake(0,64,self.view.frame.size.width,self.view.frame.size.height-64)];_tableView.delegate=self;_tableView.dataSource=self;_tableView.delegate=self;_tableView.dataSource=self;[self.viewaddSubview:_tableView];[_tableViewrelease];}];returncell;}实际测试效果图见图4-3-2:图4-3-2分类图片界面效果4.4灵感界面这个界面包括灵感和喜欢两个界面,灵感喜欢界面能够将自己灵感展示出来,喜欢界面能够看到自己已经标记为喜欢的图片(1)灵感界面灵感界面展示的是自己创作的一些灵感,点击第一个方框即可以创建格子,将自己喜欢的装修图片放到格子上面。灵感和喜欢这两个界面的实现共用的时同一个试图控制器,点击上面的按钮时,现将原有的视图移除,再将将要显示的视图添加到视图控制器上,从而实现这样的效果_seg=[[UISegmentedControlalloc]initWithItems:segArray];[_segaddTarget:selfaction:@selector(segClick:)forControlEvents:UIControlEventValueChanged];_seg.selectedSegmentIndex=0;_seg.tintColor=[UIColorredColor];self.navigationItem.titleView=_seg;self.viewController=[[ZYGeziViewControlleralloc]init];[self.viewaddSubview:self.viewController.view];-(void)segClick:(UISegmentedControl*)seg{if(seg.selectedSegmentIndex==0){for(UIView*viewinself.view.subviews){[viewremoveFromSuperview];}self.navigationItem.rightBarButtonItem=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAddtarget:selfaction:@selector(itemClick)];self.viewController=[[ZYGeziViewControlleralloc]init];[self.viewaddSubview:self.viewController.view];}else{self.viewController=[[ZYLikeViewControlleralloc]init];[self.viewaddSubview:self.viewController.view];self.navigationItem.rightBarButtonItem=nil;}}实际测试效果图见图4-4-1:图4-4-1灵感界面效果(2)喜欢界面在这个界面我们能看到自己所喜欢的装修样式图片,以及共有多少人喜欢了这个装修样式,并且能够编辑,即删除。这个界面通过自定义tableview实现:-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{UITableViewCell*cell=[tableViewdequeueReusableCellWithIdentifier:@"Cell"];if(cell==nil){cell=[[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:@"Cell"]autorelease];//UIImageView*imageView2=[[UIImageViewalloc]initWithFrame:CGRectMake(10,imageView.frame.size.height,60,25)];//imageView2.tag=3;//imageView2.image=[UIImageimageNamed:@"v110_04Class_liked_b.png"];//[celladdSubview:imageView2];}//[celladdSubview:imageView2];}ZYLikedPicList*picList=self.dataArray[indexPath.row];NSLog(@"%f",picList.picId);UIImageView*imageView=(UIImageView*)[cellviewWithTag:1];UILabel*label=(UILabel*)[cellviewWithTag:2];ZYCustonButton*button=(ZYCustonButton*)[cellviewWithTag:3];button.tag=picList.picId;[buttonaddTarget:selfaction:@selector(buttonClick:)forControlEvents:UIControlEventTouchUpInside];[buttonsetBackgroundImage:[UIImageimageNamed:@"v110_04Class_liked_b.png"]forState:UIControlStateNormal];[imageViewsetImageWithURL:[NSURLURLWithString:picList.picUrl]placeholderImage:[UIImageimageNamed:@"******************"]];label.text=[NSStringstringWithFormat:@"%d人喜欢了",(int)picList.likeTimes];returncell;}实际测试效果图见图4-4-2:图4-4-2喜欢界面效果4.5关注界面这个界面能过获得不同的人使用这个APP的实时动态,比如某个人关注了某个装修方法图片,通过这个界面我们就能看到这个人得昵称、头像及装修的图片。这个界面的实现原理和灵感界面大体相似。不过使用的同一个控制器,不同的界面上刷新不同的数据,也是通过自定义tableview实现的[_tableViewaddPullToRefreshWithActionHandler:^{NSLog(@"下拉刷新");currentIndex=0;[selfrequestData];}];[_tableViewaddInfiniteScrollingWithActionHandler:^{NSLog(@"上拉加载");currentIndex++;[selfrequestData];}];//首次进入刷新状态[_tableViewtriggerPullToRefresh];-(void)requestData{if(_seg.selectedSegmentIndex==0){NSLog(@"qqq");[HttpEnginegetHotInfoRequestWithpage:(currentIndex+1)CompletionBlock:^(NSMutableArray*array){if(currentIndex==0){[self.dataArrayremoveAllObjects];}[self.dataArrayaddObjectsFromArray:array];//NSLog(@"%d%d",self.dataArray.count,array.count);[_tableViewreloadData];}];}}实际测试效果图见图4-5-1:图4-5-1关注界面效果4.6设置界面这个界面展示了用户的头像,昵称,还有一些APP的常用功能,即清空缓存,版本检测,评分,关于APP等。通过自定义tableview实现。-(void)tableView:(UITableView*)tableViewdidSelectRowAtIndexPath:(NSIndexPath*)indexPath{if(indexPath.section==0){ZYPersonViewController*personController=[[ZYPersonViewControlleralloc]init];personController.personInfo=self.personInfo;[self.navigationControllerpushViewController:personControlleranimated:YES];[personControllerrelease];}if(indexPath.section==2){if(indexPath.row==2){ZYPingeViewController*viewController=[[ZYPingeViewControlleralloc]init];[self.navigationControllerpushViewController:viewControlleranimated:YES];[self.navigationControllerpushViewController:viewControl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东华宇工学院《普通生物学动物部分》2023-2024学年第二学期期末试卷
- 山东华宇工学院《城市公交规划与运营管理》2023-2024学年第二学期期末试卷
- 新星职业技术学院《燃烧学》2023-2024学年第二学期期末试卷
- 江西科技职业学院《磁性材料与器件》2023-2024学年第二学期期末试卷
- 南京交通职业技术学院《城市能源系统》2023-2024学年第二学期期末试卷
- 南通师范高等专科学校《遥感概论实验》2023-2024学年第一学期期末试卷
- 山东省兰陵县重点达标名校2025届中考模拟最后十套:化学试题(三)考前提分仿真卷含解析
- 公司计件工资劳动合同书
- 二零二五抖音发布协议书模板
- 二零二五版月子中心月嫂服务合同书
- 2022-2023学年浙江省温州二中八年级(下)期中数学试卷(含解析)
- 2023年广东珠海金湾区红旗镇第一批合同制职员招聘笔试模拟试题及答案解析
- dd5e人物卡可填充格式角色卡夜版
- 新课程改革试题与答案
- 心理统计学考研历年真题及答案
- 浙江省心理健康教育c证说课准备
- 中医内科学阳痿专家讲座
- 技术经纪人练习题集附有答案
- ZL50装载机反转六连杆工作装置设计
- 内科学讲义(唐子益版)
- LY/T 2698-2016铁皮石斛杂交育种技术规程
评论
0/150
提交评论