ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:4.49MB ,
资源ID:2330717      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2330717.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于ios平台的客户端应用之食安检的设计与实现.doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于ios平台的客户端应用之食安检的设计与实现.doc

1、河北农业大学 本科毕业论文(设计) 题目:基于iOS平台的客户端应用之食安检的设计与实现 基于iOS平台的客户端应用之食安检的设计与实现 摘 要 在我们的生活中,存在着各种各样的食物。在提倡绿色食品、健康食品的今天,还是有一些食品存在严重安全隐患。接连不断发生的恶性食品安全事故却引发了人们对食品安全的高度关注,要重新审视这一已上升到国家公共安全高度的问题,更要加大对食品安全的监管力度。食品安全关系到广大人民群众的身体健康和生命安全,关系到经济健康发展和社会稳定,关系到政府和国家的形象。食品安全已成为衡量人民生活质量、社会管理水平和国家法制建设的一个重要方面。于是一

2、款成熟的食品安全检测的APP的研究与设计开发已经成为了市场不可或缺的一部分,并且有着广阔的发展前景。 本次设计项目食安检,基于苹果iOS系统,利用智能手机实现食品安全检测的功能。毕业设计完成时,整个应用界面简单明了,操作简洁。用户不仅能够看到自己购买的食品是否安全、符合国家标准,还能够进行其他产品的搜索,让用户能够对于自己购买的食品吃得舒心,买的放心。 本设计所使用的开发环境是Xcode,使用的编程语言是Objective-C。项目主要功能包括产品的展示、搜索以及条形码扫描。 关键词:iOS系统; 食品安全; Objective-C语言; 条形码

3、 Abstract In our lives , there is a wide variety of foods. In promoting green , healthy food today, there are still some serious food safety hazards . Malignant food safety incidents occurred one after another , but sparked great concern about food safety , to re -examine this

4、had risen to the height of a national public safety issues , but also to increase the food safety supervision. Food safety is related to the health and safety of the masses , related to the healthy economic development and social stability , related to the image of the government and the country. Fo

5、od safety has become an important aspect of a measure of the quality of people's lives , social management and the national legal system. So APP research and design to develop a sophisticated food safety testing has become an integral part of the market , and there are broad prospects for developmen

6、t. The design project food security, based on Apple's iOS system, using smart phones to achieve food safety testing functions. Upon graduation design is completed , the entire application interface is simple , simple operation. Users can not only see if it is safe to buy their own food , in lin

7、e with national standards, but also be able to search for other products , allows users to buy their own food to eat for comfort, buy the rest assured . This design is used in the development environment Xcode, the programming language is Objective-C. Project features include display, search an

8、d barcode scanning products. Keywords: iOS system; food safety; Objective-C language; barcode 目录 1 引言 1 1.1 课题的目的和意义 1 1.2 条形码 1 1.3 主要设计内容 1 2 iOS、语言、环境以及所用技术介绍 2 2.1 iOS简介 2 2.2 Objective-C语言 2 2.3 Xcode开发环境 2 2.4 Core Data 数据库 2 2.5 JSON解析 3 2.6 ZBar库——条形码扫描

9、 3 3 需求分析 4 3.1 功能性需求 4 3.1.1 功能结构图 4 3.1.2 总体设计 5 3.2 非功能性需求 5 4 详细设计与实现 6 4.1 首页展示设计 6 4.2 详情页面设计 7 4.2.1 商品详情页面设计 7 4.2.2 检测结果页面设计 9 4.2.3 食品认证页面设计 10 4.3 搜索页面设计 11 4.4 分类页面设计 14 4.5 食品扫描页面设计 17 4.6 个人中心页面设计 19 5 测试 23 5.1 首页模块测试 23 5.2 详情模块测试 23 5.3 搜索模块测试 23 5.4 分类模块 23 5.

10、5 食品扫描模块测试 23 5.6 个人中心模块测试 23 6 结束语 25 7 参考文献 26 8 致谢 27 1 引言 1.1 课题的目的和意义 iOS系统因为其本身的安全性以及较高的市场占有率,对于大学生来讲,从事这个行业的开发具有很大的前景。所以了解iOS开发流程,学会使用Xcode编程工具,掌握iOS开发语言Objective-C,学习iOS应用功能实现以及硬件功能的利用,是我这次选用iOS平台开发食安检的重要原因。 社会的发展和科技的进步,虽然为生产出高产的安全、绿色食品提供了支持,但是也给那些生产不安全、危害人体健康的有害食品的不法分子提供了便利,所以进行

11、食品安全检测仍然是一项十分重要的任务。以前,人们就算是对于某种食品的成分以及是否安全持有怀疑的态度,但是因为其不能够实时检测,让很多人都放弃了这个想法,买了很多看似健康,但是实际上却并为通过检测的食品。 本次毕业设计的APP——食安检,旨在为用户提供一个便利的平台,让用户能够随时的查看自己购买到的商品是否进行了安全检测,是否通过了ISO认证,让用户吃起来更放心。 1.2 条形码 据中国互联网络中心最新的统计报告(2014年1月),截止2013年12月,我国网民规模达6.18亿,全年共计新增网民5358万人,而新增网民中使用手机上网的比例高达73.3%,移动互联网的时代已经全面到来。 随

12、着零售业和消费市场的飞速扩大和发展,以及移动互联网的迅猛发展,在全球范围内,每天需要运用条形码扫描的次数已经超过上亿次。现在有关于条形码扫描的应用移动应用也越来越多,例如我查查、条形码商品比价、马上闪条形码比价等应用。就连微信这样的即时通讯的应用也包含了条形码扫描,可见条形码的应用范围之广。 1.3 主要设计内容 (1)首页模块:首先以广告栏的形式滚动式展示特色产品,下方展示四个产品专区,以瀑布流方式展示数据。 (2)详情模块:该模块主要实现食品详情、检测结果以及食品认证三个界面的数据的展示。食品详情界面展示食品图片、食品名称、食品描述、选择食品批次时间等内容;检测结果界面分三个标签展示

13、三种报告结果,分别为“自检报告”、“送检报告”和“抽检报告”;食品认证页面界面显示所获得的认证图标,点击图标可以查看具体认证信息。 (3)搜索模块:该模块主要实现的功能是通过产品名称的模糊搜索进行产品列表的展示。 (4)分类模块:该模块主要实现的功能是实现产品的两级分类展示,当点击二级分类时,可以跳转到搜索界面进行搜索。 (5)食品扫描模块:该模块主要实现的功能是通过开启摄像头进行条形码的扫描或者手动输入条形码进行产品的搜索。 (6)个人中心模块:该模块主要实现的功能是用户的登录、注册、修改密码等功能。 2 iOS、语言、环境以及所用技术介绍 iOS SDK提供

14、了创建iOS应用程序所需要的环境和工具。利用iOS SDK开发应用时所用的编程语言是Objective-C。下面具体介绍一下iOS、语言、环境以及其他所用技术。 2.1 iOS简介 iOS是由苹果公司开发的以Darwin为基础的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统。这个系统最早的用途为iPhone手机,后来陆陆续续的用到了苹果公司的其他产品上。由于用途的逐渐广泛,系统名字也由iPhone OS 更名为iOS。截止2012年9月份,根据友盟给出的数据,目前国内的IOS设备的用户量达到了3500万,App Store上的应用数已经达到了65万,下

15、载量已超过300亿次,平局每天下载量在4600万,而国内占总下载量的20%,中国区下载量每天在1000万次左右。 iOS操作采用的是多点触控直接操作,支持多语言。而且因为其硬件和操作系统均由Apple制造,所以具有高度整合性。这样的优势,也是的App能够充分的利用Retina显示屏、加速感应器以及三轴陀螺仪等硬件功能。在iOS及后续版本中,当第三方软件收到了新的信息时,Apple的服务器将把这些通知推送至iPhone、ipad或者是iPod Touch上(无论它运行与否)。 2.2 Objective-C语言 Objective-C,是一种扩充C的面向对象编程语言,主要用于Mac OS

16、X和GNUstep这两个使用OpenStep标准的系统。 Objective-C在最开始的时候是不支持垃圾回收的,之所以这样做的是为了避免出现和Smalltalk一样出现漫长的死亡时间,导致整个系统失去功用的现象。但是在Xcode4以及后续的版本就已经具备了ARC机制,实现了自动释放功能。 Objective-C不支持运算子多载,这一点是和C++所不一样的。而且Objective-C只容许对象继承一个类别,支持动态运行时。但是其也有很多弊端,就拿编译时的性能优化方法来讲,很多都是不能应用于Objective-C,内联函数就是一个很常见的例子。 2.3 Xcode开发环境 Xcode是开

17、发苹果应用程序的必备开发环境。自动Xcode4开始,开发人员就可以利用Xcode开发基于iOS的iPad、iPhone、iPod Touch设备应用程序。 Xcode不仅编译速度快,而且支持很多中的编程语言,比如C、C++、Objective-C。 2.4 Core Data 数据库 Core Data拥有成熟的代码,这些代码通过单元测试来保证品质。应用Core Data的程序每天被世界上几百万用户使用。通过了几个版本的发布,已经被高度优化。它能利用Model层的信息和运行时的特性,而不通过程序层的代码实现。除了提供强大的安全支持和错误处理外,它还提供了最优的内存扩展性,可实现有竞争力的

18、解决方案。 除了Core Data本身的优点之外,使用它还有其他的好处:它很容易和Mac OS X系统的Tool chain集成;利用Model设计工具可以按图形化方式轻松创建数据库的结构;你可以用Instruments的相关模板来测试Core Data的效率并debug。在Mac OS X的桌面程序中,Core Data还和Interface Builder集成。 通过Core Data管理应用程序的数据模型,可以极大程度减少需编写的代码数量。Core Data还具有下述特征:第一,将对象数据存储在SQLite数据库以获得性能优化。第二,提供NSFetchedResultsControl

19、ler类用于管理表视图的数据。即将Core Data的持久化存储显示在表视图中,并对这些数据进行管理:增、删,改。第三,管理undo/redo操作。检查托管对象的属性值是否正确。 2.5 JSON解析 JSON(Javascript Object Notation)是一种轻量级的,以文字为基础,且易于让人阅读。尽管JSON是在Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。 JSON用于描述数据结构,有以下形式存在: 对象(object):一个对象以“{”开始,并以“}”结束。一个对象包含一系列非排序的名称/值对,每个名称/值对之

20、间使用“,”分割。 名称/值对(collection):名称和值之间使用“:”隔开,一般的形式是:{name:value},一个名称是一个字符串,一个值可以是一个字符串、一个数值、一个对象、一个布尔值、一个有序列表或者一个null值。 值的有序列表(array):一个或者多个值用“,”分割后,使用“[”,“]”括起来就形成了这样的列表,形如:[collection,collecton]。 字符串:以“”括起来的一串字符。 数值:一系列0-9的数字组合,可以为负数或者小数,还可以用“e”或者“E”表示为指数形式。 布尔值:表示为true或者false。 2.6 ZBar库——条形码扫

21、描 ZBar是款桌面电脑用条形码/二维码扫描工具,支持摄像头及图片扫描,支持多平台包括 iPhone 手机。同时ZBar提供了二维码扫描的 API 开发包。例子分析: 第一,导入和使用SDK,导入ZBarSDK文件并引入一下框架AVFoundation.framework(weak)
CoreMedia.framework (weak)
CoreVideo.framework (weak)
QuartzCore.framework
libiconv.dylib。最后,引入头文件#import “ZBarSDK.h” 即可使用。 第二,ReaderSample使用了ZBarReaderVi

22、ewController,该类实现了自动捕捉条形码,设置了ZBarReaderViewController属性scanner的配置。找到条形码时,会执行代理方法-(void)imagePickerController:(UIImagePickerController*)reader didFinishPickingMediaWithInfo:(NSDictionary*) info最后读取并显示了条形码的图片和内容。 第三,EmbedReader使用了ZBarReaderView,该类实现了使用摄像头捕捉条形码,调用start方法开始捕捉,调用stop方法停止捕捉。当捕捉到条形码时,会调用代

23、理方法:- (void) readerView:(ZBarReaderView*)readerViewdidReadSymbols:(ZBarSymbolSet*)symbolsfromImage:(UIImage*)image 常用类分析: 第一,ZBarReaderViewController用于动态捕捉条形码;scanner用于配置捕获图像的属性;cameraDevice用于设置前后置摄像头;代理方法- (void) readerView:(ZBarReaderView*)readerViewdidReadSymbols:(ZBarSymbolSet*)symbolsfromImag

24、e:(UIImage*)image在捕获到条形码后执行 第二,ZBarReaderController继承UIImagePickerController,用于手动捕捉条形码sourceType用于图片获取方式,摄像头或相册方法takePicture获取图片,并从图片中捕获条形码代理方法-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info,在读取条形码后执行,info包含了条形码信息。 3 需求分析 从项目开发的角度看,软

25、件需求包括两大类型:功能性需求和非功能性需求。其中功能性需求是最主要的需求,是需要计算机系统解决的问题,也是对数据处理的要求。功能需求规定了系统必须执行的功能。非功能性需求是一些限制性要求,是对实际使用环境所做的要求,如可靠性要求、性能要求等。非功能性需求比功能性需求要求更严格,更不容易满足,因为如果非功能性需求不能满足的话,系统将无法运行。食安检客户端的需求主要从功能性需求和非功能性需求两方面分析。 3.1 功能性需求 3.1.1 功能结构图 3.1.2 总体设计 按照功能分为六大功能,如下表: 表3-2-2 程序功能表 模块简述 功能描述

26、首页 APP首页,展示分两个区域,上方展示特色产品,以广告条方式展示,下方展示四个产品专区,以瀑布流方式展示数据 详情 展示食品的详细信息,检测结果,食品认证信息。用户可以通过食品的详细信息可以查看食品的名称,描述信息和营养含量;用户可以通过检测结果查看自检报告,抽检报告和送检报告;用户可以通过食品认证界面查看该食品所获的的ISO认证 搜索 可以根据用户需求搜索关键字,通过输入产品名搜索特定的食品信息。点击取消搜索可以显示搜索的历史纪录。 分类 查看所有食品的一级分类和二级分类,当点击二级分类的子分类的时候,可以查看此分类的所有产品的信息 食品扫描 可以通过条形码扫描查看食品

27、的信息 个人中心 显示用户的信息以及历史纪录等。 3.2 非功能性需求 非功能性需求对用户的操作体验起着重要作用,本应用对非功能性需求也是很重视的。为了能够加强用户的体验,对于本应用做了很多的优化。 非功能性需求主要有:(1)操作流畅性:比如说在页面数据加载的时候,要能够首先显示页面,然后再进行数据的逐步显示,不应该出现黑屏等现象,保证操作的流畅性;(2)启动时间:应用启动时间应尽可能短,加载时间太长不利于用户感受;(3)美观性:每个界面尽量让UI设计师设计好,要给用户美的享受。 4 详细设计与实现 根据需求分析,划分了六大

28、功能模块,其中详情模块、扫描模块和搜索模块是本软件的特色及关键部分,具体功能如下所示: 4.1 首页展示设计 下图4-1为首页界面,展示分两个区域。上方展示特色产品,以广告栏的方式展示。其中广告栏的实现就是通过使用继承与UIView,并且实现了UIScrollViewDelegate协议的SGFocusImageFrame以及NSTimer来实现特色产品的轮播。下方展示四个产品专区,分别使用了两个UIScrollView来实现四个专区的切换,使用了四个UITableView来展示某一个专区的产品的显示,并且前两个UITableView和后两个UITableView实现通过联动实现了瀑布流的

29、方式。导航栏右上方为搜索按钮,点击后进入“搜索”界面。点击产品专区中的具体产品,进入“食品详情”页面,并且此内容会存储到数据库中,可以在个人中心界面的“历史记录”中查看此记录。 图4-1 首页视图 以下代码为广告栏特色产品轮播的代码: - (void)setupViews { //这里为广告栏的数据 arr = [NSMutableArray array]; [arraddObject:[[SGFocusImageItemalloc] initWithImage:[UIImageimageNamed:@"lgd4.png"] tag:0]]; for (inti = 0;

30、i< 4; i++) { NSString *str = [NSStringstringWithFormat:@"lgd%d.png",i+1]; SGFocusImageItem *item1 = [[SGFocusImageItemalloc] initWithImage:[UIImageimageNamed:str] tag:i+1]; [arr addObject:item1]; } [arraddObject:[[SGFocusImageItemalloc] initWithImage:[UIImageimageNamed:@"lgd1.png"] tag:5]]; i

31、mageFrame = [[SGFocusImageFramealloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width,SGFOCUSIMAGEFRAME_HEIGHT) delegate:selfimageItems:arr]; [self.viewaddSubview:imageFrame]; //这里为广告栏的图片id _imageIdArr = @[@"10143",@"12070",@"10101",@"158",@"10143",@"12070"]; } 4.2 详情页面设计 详情页面主要分为四个

32、页面,包括商品详情、检测结果、食品认证和小知识库界面。其中小知识库界面尚未完善。 详情页面使用的是四个UIButton的切换来实现UIScrollView下的四个界面的切换。 4.2.1 商品详情页面设计 下图4-2-1和4-2-2是商品详情界面。商品详情页面整体界面使用的是UITableView,其中每一个栏目都是一个UITableViewCell。 图4-2-1 商品详情界面(上) 图4-2-2 商品详情界面(下) 食品信息的cell包括食品的图片和食品的名称,其中食品的图片使用ZoomIma

33、geView来实现,并且通过[_fooImageViewsetImageWithUrl:[NSURL URLWithString:saveString]]来实现对于图片的缓存,当下次再次进入这个界面的时候不需要再次加载图片。而且当点击食品的图片时,可以放大图片。 食品描述信息使用的是置于UITableViewCell的UILabel进行显示。而且可以根据解析出来的描述信息的内容的多少来自动适应UILabel,进而自动适应UITableViewCell。 食品的主要成分和使用人群与食品的描述信息相同,可以根据具体的内容的多少来自动的调整整个UITableViewCell的高度。 食

34、品批次信息是由继承于UITableViewCell的BatchInfoCell来实现的。其中BatchInfoCell包括点击输入产品批次日期的UITextField、选择日期的UIButton以及通过选择的日期计算是否过期以及是否有对应日期的自检报告。当点击UITextField或者是UIButton都会弹出一个UIActionSheet,其中UIActionSheet包含一个UIDatePicker可以进行日期的选择。当选择完日期后点击确定就会进行日期的计算(如图4-2-3),并且会根据获得内容自动的调整UILabel的大小,调整BatchInfoCell的高度。 其中根据具体内容计算U

35、ILabel大小的代码如下: - (void)layoutSubviews { [superlayoutSubviews]; if (_foodDetailModel.datetime.length> 0) { _infoLabel = [[UILabelalloc] initWithFrame:CGRectZero]; _infoLabel.numberOfLines = 0; _infoLabel.font = [UIFont systemFontOfSize:14]; [selfaddSubview:_infoLabel]; _infoLabel.text = _fo

36、odDetailModel.datetime; CGSize size; size = [UIUtilsgetSizeWithLabel:_foodDetailModel.datetimewithFont:[UIFont systemFontOfSize:14]withSize:CGSizeMake(kScreenWidth-6, kScreenHeight)]; _infoLabel.frame = CGRectMake(3, _dateTextField.bottom+10, kScreenWidth-6,size.height); _dateTextField.text = _f

37、oodDetailModel.productDate; } } 图4-2-3 选择日期后的效果 营养含量是由继承于UITableViewCell的NutritionCell来实现的。其中五个圆环分别为能量、蛋白质、脂肪、碳水化合物以及钠,而每一个圆环中的不同深浅度表示了每种物质的营养含量百分比。表示百分比的部分代码为: - (void)setPercent:(int)percent animated:(BOOL)animated { CGFloatfloatPercent = percent / 100.0; floatPercent = MIN(1, MAX(0, flo

38、atPercent)); percentLayer.percent = floatPercent; percentLayer.color1 = _leftColor; percentLayer.color2 = _rightColor; [selfsetNeedsLayout]; [percentLayersetNeedsDisplay]; [selfmoveThumbToPosition:floatPercent * (2 * M_PI) - (M_PI/2)]; } 4.2.2 检测结果页面设计 下图4-2-4为检测结果页面。首先此页面包含三个UIButt

39、on的UISegmentControl、显示批次信息的UILabel、显示报告的三个栏目的UILabel、显示报告具体结果的UITableView和显示自检报告、送检报告和送检报告PDF的UIButton。 其中UISegmentControl默认选中第一个Item,显示批次信息的UILabel会根据选择日期得到的信息来进行显示。UITableView的具体内容以及显示报告PDF的UIButton内容根据选择的Item进行改变。 下面主要展示显示PDF的代码: - (void)viewDidLoad { [superviewDidLoad]; // Do any addit

40、ional setup after loading the view. webview = [[UIWebViewalloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight - 64)]; NSURLRequest *request = [NSURLRequestrequestWithURL:[NSURL URLWithString:self.urlStr]]; webview.delegate = self; webview.scalesPageToFit = YES; [webviewloadRequest:

41、request]; [self.viewaddSubview:webview]; [self showHUD:@"正在加载.."]; } 图4-2-4 检测结果页面 4.2.3 食品认证页面设计 图4-2-5为食品认证页面。食品认证界面主要展示食品所获得的认证图标,使用的是UITableView进行展示。每一个UITableViewCell包含两个UIButton,每个UIButton上分别包含一个用来显示认证图标的名称的UILabel和认证图标的ZoomImageView。当点击ZoomImageView,可以放大查看所对应的具体的pdf文件。 关于UITableViewC

42、ell的布局以及显示代码如下: - (void)layoutSubviews { [superlayoutSubviews]; NSString *saveString; if (![_leftCerModel.imgUrlisEqual:[NSNull null]] && _leftCerModel.imgUrl.length> 0) { saveString = _leftCerModel.imgUrl; [_leftImageViewsetImageWithURL:[NSURL URLWithString:_leftCerModel.imgUrl]]; } if

43、[_leftCerModel.documentUrlisEqual:[NSNull null]] && _leftCerModel.documentUrl.length> 0) { [_leftImageViewaddZoom:_leftCerModel.documentUrl]; [_leftZoomImageaddZoom:_leftCerModel.documentUrl]; } if (![_rightCerModel.imgUrlisEqual:[NSNull null]] && _rightCerModel.imgUrl.length> 0) { saveStrin

44、g = _rightCerModel.imgUrl; [_rightImageViewsetImageWithURL:[NSURL URLWithString:_rightCerModel.imgUrl]]; } if (![_rightCerModel.documentUrlisEqual:[NSNull null]] && _rightCerModel.documentUrl.length> 0) { [_rightImageViewaddZoom:_rightCerModel.documentUrl]; [_rightZoomImageaddZoom:_rightCerMo

45、del.documentUrl]; } self.leftNameLabel.text = _leftCerModel.name; self.rightNameLabel.text = _rightCerModel.name; } 图4-2-5 食品认证页面 4.3 搜索页面设计 图4-3-1为搜索界面。最上方的UINavigationBar的LeftBarButtonItem功能是返回到首界面,RightBarButtonItem是分类按钮,点击此按钮,可以跳转到分类界面。 图4-3-1 为搜索界面 UINavigationBar下方为搜索框和一个点击取消的UIBu

46、tton。当输入完内容点击键盘上的“Search”键就会请求接口进行后台数据的搜索,后台会将搜索到的内容返回,如果有内容,那么就用UITableView来显示所有的产品列表。此列表的每一个UITableViewCell都包括三个内容:食品的图片、食品的名称以及食品的适合人群。显示搜索结果的UITableView具有上拉加载更多和下拉重新请求数据刷新界面的功能。其机制主要是通过计算ContentOffSet.y和ContentSize来判断是否进行了上拉和下拉的操作,如果进行了其中某一个操作那么就通知UITableView进行相应的操作。 点击取消的按钮,就会取消当前的搜索,显示之前的搜索内容

47、如图4-3-2)。 图4-3-2 搜索历史界面 当点击取消的按钮后所显示的搜索历史记录是通过coreData进行数据管理的。此历史记录包括搜索时间和搜索的名字,通过如下代码将所有的数据查询出来,并且通过UITableView进行展示。当点击“清除历史记录”的UIButton时,会触发-(BOOL)deleteHistoryAllRecordData方法,并且同时使用[_historyTableView reloaData]方法进行界面刷新。具体的HistoryRecordCoreData类的存储、查询和删除代码如下: - (BOOL)addHistoryRecordData

48、HistoryRecord *)historyRecord { if (historyRecord == nil) { return NO; } [coreData.managedObjectContextinsertObject:historyRecord]; return [coreData.managedObjectContextsave:nil]; } - (BOOL)deleteHistoryAllRecordData { NSArray *allData = [self findAllHistoryRecord]; for (HistoryRecord

49、history in allData) { if (history != nil) { //删除 [coreData.managedObjectContextdeleteObject:history]; //将数据同步到文件中 [coreData.managedObjectContextsave:nil]; } } return YES; } - (NSArray *)findAllHistoryRecord { //1:创建实体描述对象 NSEntityDescription *entify = [NSEntityDescriptionentityForName:

50、@"HistoryRecord" inManagedObjectContext:coreData.managedObjectContext]; //2:创建查询对象 NSFetchRequest *request = [[NSFetchRequestalloc] init]; [requestsetEntity:entify]; //3:查询用户 NSArray *lines = [coreData.managedObjectContextexecuteFetchRequest:requesterror:nil]; return lines; } 4.4 分类页面设计

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服