基于苹果系统的掌上购物APP开发_第1页
基于苹果系统的掌上购物APP开发_第2页
基于苹果系统的掌上购物APP开发_第3页
基于苹果系统的掌上购物APP开发_第4页
基于苹果系统的掌上购物APP开发_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州大学毕业论文题 目: 基于苹果系统的掌上购物APP开发 指导教师: 苗同臣 职称: 教授 学生姓名: 明恩泉 学号: 20127720237 专 业: 计算机科学与技术(计算机辅助设计) 院(系): 软件学院 完成时间: 2016-5-30 2016年 5 月 30 日郑州大学软件学院2016届毕业论文目 录摘 要IAbstractII第1章 前言11.1苹果手机在中国的发展历史11.2 购物APP架设计开发的现实意义11.3国内外研究状况2第2章 购物APP开发技术简介42.1 Object-C简介42.2 iOS系统简介42.3 应用程序框架简介52.4 开发工具简介62.5 项目可行

2、性分析6第3章 购物APP详细模块设计83.1 发现页83.2 品牌页153.3 品牌馆18总 结22致 谢23参考文献24郑州大学软件学院2016届毕业论文摘 要 项目的实现用到的工具是Xcode,用到的语言是Object-C语言,项目中使用的控件是UI控件。项目实现过程需要网络数据的抓包,数据单例的封装,数据链接的整合分类以及整个实现页面的框架搭建。项目的具体实现是发现页、品牌页、品牌馆三个主页面的展示,我们通过设置UITabBar的item来确定这些主页面。之后就是每个页面的图片展示,我们用UItableView和UICollectionView来实现表格式图和集合视图的图片布局,布局中

3、用到xib的定制,完成页面的展示之后,给每个图片添加点击事件和tag值的标记,并用bloc回调的方式获取传来的数据并推出另一个视图控制器就可以实现图片点击的详情页面。整个项目基本实现后,我还需加强对表格视图和集合视图控件的熟练运用,因为cell的复用还是一个容易出错的地方,其次,获取数据block回调过程中要测试下回调的值是否存在。最后,要想做出更出色的项目还需要多加学习和借鉴他人的思想。关键词:购物,UITableView,UICollectionViewAbstractThe tools used to achieve the project is Xcode, used language

4、 is Object-C language, the controls used in the project is the UI controls.Project implementation process requires capture network data frame packages, data link data classification and integration of a single example of realization of the entire page structures.Implementation of the project is to f

5、ind pages, brand pages, brand Pavilion three main page, we determined the main page by setting UITabBar the item. After each page is a picture show, and we UItableView UICollectionView to achieve image tabular view and a layout view of the collection, after custom layout used xib complete display of

6、 the page, add a click event to each picture and tag values mark, and to obtain data from the bloc with the callback mode and launched another view controller can achieve the picture click on the details page.After the basic realization of the whole project, I need to strengthen the table view and t

7、he view of the collection controls proficient, because cell multiplexing or a place prone to error, and secondly, to obtain data block callback procedure to be tested under the callback value exists. Finally, in order to make a better project also need to pay more to learn from other people's th

8、inking.Keywords: shopping, UITableView, UICollectionViewII郑州大学软件学院2016届毕业论文第1章 前言1.1苹果手机在中国的发展历史 在2007年1月份在美国诞生了第一台iPhone手机,当时的售价在五百美元,虽然iPhone刚刚出世,但以它独有的简约风格任然吸引了不少的消费者前来购买,可谓当时的iPhone是供不应求,人们宁愿多排队你分钟也要购买一来iPhone手机。在iPhone手机刚出来的时候也就是美国的人民热血比较高涨,因为在这个时候像中国的其他国家并没有将苹果手机大量引入中国市场,虽然有一部分,但是相对其他中国用户用的安卓手

9、机相比价格还是昂贵了些。在2008年6月份,苹果公司又发布了第二代的苹果手机也就是iPhone 3G,这一年的发售并没有包括中国市场。当然第二代苹果的出现也并不是那么完美,它仍然存在这性能的缺陷,但尽管如此还是有很多人热爱这款手机,它的销量也是在三天时间就突破八万,所以能够看出,苹果手机还的出现还是值得我们去关注的。在2008年10月份,第二代苹果手机iPhone3G还是在中国问世了,当然了,价格方面还是一个非常让人头疼的问题,但是在中国买一部苹果二代就要花掉人民币五千,可以说不是想买就舍得买的。在2010年6月份,苹果公司又发布了iPhone4的诞生。相对于前两代苹果相比,iPhone4的出

10、现可谓是震惊世界,iPhone4不同于前两代的苹果,它在设计方面和功能方面有了质的飞跃。在我们印象中,拿到的手机及时是一款只能手机也有很多的按键,但iPhone4只提供了一个Home键及侧边音量键,而且机身非常简约,看起来就很有美感。在iPhone4诞生三天的时间销量就突破170万。随着苹果手机的热销,慢慢的就开始进入了中国市场,在同年九月份,苹果手机在中国内地正是发售,当时发售的只有16G和32G的裸机,并且售价为4999和5999人民币。在2011年10月4号,也就是乔布斯逝世的前一天,苹果公司发布了新一代苹果-iPhone4s。在2012年9月份,苹果公司正式发布其新一代产品 iPhon

11、e5。并将尺寸变为4.5英寸。在2013年9月份,苹果发布了另外两种iPhone手机,分别是iPhone5C和iPhone5S,因为在之前,苹果发布手机都是在内地和其他国家进行销售,而中国并未考虑在内,但iPhone5s的出现,苹果公司将市场也指向了中国,并且在一周内销量达到九百万台,可以看的出在中国市场给苹果带来了足够的销量。2014年第三财季显示,iPhone在中国市场的销量增长48%。在2015到2016年间,iPhone6、iPhone6s以及iPhone6Plus等相继出现,更是引领了中国手机的潮流。我们可以发现,从之前山寨机到安卓机的现状到每人用来一台苹果手机已经渐渐成为了苹果在中

12、国市场的发展趋势1。1.2 购物APP架设计开发的现实意义社会的进步自然促进了人们生活水平的提高,人们不再只是满足以往的温饱问题,如何享受并让自己的日子过得不同寻常或更加惬意也是他们一直追随的。当然享受生活的方式有很多,比如购物。信息时代,网购发展可谓是愈加愈快。之所以现在的网购能够发展如此之快也是因为它和传统的购物有的非常大的区别和优势。比如说,我们需要买一件自己的生活用品,要是以往肯定是去各大商场或者店铺去挑选,然后网购就不一样了,我们可以不用出门只需要一台电脑或者手机就可以在网上挑选我们需要的各种商品,因而极大地节省了购物时间。不仅如此,对于那些上班族,他们的时间非常紧迫,因为大部分的时

13、间都是在工作,真正的娱乐时间却很少,那么,网购就是他们的福音,他们完全可以利用闲暇的那么一点时间就可以购买一些自己需要的商品,而不需要过多的去花时间。既然如此,为这些广大消费者们提供一款掌上购物APP还是非常必要的。我的这个设计是购物中的一部分,是一款提供女性服装的APP,这对于那些“剁手党”的女性又提供了方便。就现阶段的分析,不管怎么说,拥有一款属于自己的购物APP还是很不错的。1.3国内外研究状况 1.3.1 国外研究状况 iPhone最开始的诞生是在2007年,那个时候的苹果只是一个起步阶段,因为相对其它的一些系统比如Windows、Symbian等来说各个方面都是不足的,特性不是很好功

14、能不是很强,可以说刚开始的苹果完全不足以和其它已经拥有成熟的系统龙头先比。苹果刚出来的时候没有3G网络的支持,没有多任务操作的支持也没有第三方应用的支持,所以在上面能够操纵的东西是非常有限的,你不能复制粘贴文本,不能发送电子邮件甚至不能发送彩信等。不仅如此,在其他特性方面比如屏幕自定义,文件管理器的全局课可见,语音的拨号,office的文件编辑等等。但是在iPhone发布三个月之后就迎来来一次非常大的升级,苹果添加了MusicStore,它允许用户直接在iPhone上面购买音乐,它或许是许许多多iPhone新特性中因为运营商网络压力后者运营利益遭到压制的例子中的第一个。随之而来,苹果二代的出现

15、可谓是功能质的飞跃,它在手机应用中添加了APP Store,APP Store同时存在于手机(AppStore)和PC(iTunes)两个地方,用户选择任意一种途径都可以自由地浏览和安装应用程序,相对之前的购买系统来说更加的一体化。因为在苹果一代的时候,用户购买商品往往是通过web的链接去下载的,而APP Store的出现可以让消费者们有个统一的地方,不仅提供了丰富了商品更使得购买变得方便和快捷。另外重要的是,AppStore和iTunesMusic使用一个账号,用户无需再次输入自己的信用卡账号密码,这意味着查找和安装应用程序将前所未有的容易,又一次为广大消费者提供了方便,在之后的升级中也加入

16、了自己原创的地图的一些高级功能2。苹果能从开始的不具备竞争的能力和到现在的走在世界的前端,说明它还是具备足够的能力。 1.3.2 国内研究状况 现在手机用户越来越多,拥有一款智能手机也是必不可少的。那么,手机的大众化必然相对的对手机软件的需求也越来越多。这个信息时代肯定不像以往的那样只是用手机接打电话发送短信就行,人们现在更注重的是娱乐性的多少。现在的网络购物已经很是普遍,网络购物能够给广大的消费者提供非常大的方便。苹果手机作为当今中国智能手机市场上不可或缺的一个品牌,那么相应的需求量也是在不断的增加。伴随着手机智能化的普及和信息移动化以及苹果市场的炽热话,不难想象iOS开发技术的流行日趋繁多

17、。而OC作为苹果独自开发的一门语言已经成为最流行开发语言之一并有和C语言相媲美的趋势。从近年来苹果在中国市场的销量和影响我们不难看出,苹果已经做得非常成功了。第2章 购物APP开发技术简介2.1 Object-C简介 软件的开发要有语言的支持。我们开发的是苹果系统的软件,用到的核心语言是object-c语言也简称OC。在苹果机还没在中国市场流行开来的时候,大家用的的最多的就是安卓机了,应该说用到的基本都是安卓机。安卓系统的手机软件用到Java,虽然用的比较广泛,但并不是它是非常完美的。语言的切合行和封装性不是很好,而且不同的机型还要进行适配等繁琐的工作,但OC就不一样,之所以苹果机近几年能够风

18、靡国内市场那是有原因的。 语言特点:OC用起来比较方便。因为苹果将它进行C的封装,由于C语言是比较底层的语言,它有着执行速度快、内存占有量小等优点。OC对C语言进行封装后在编写代码的时候不会出现用C语言编程的复杂和臃肿,OC专门提供了供我们使用的各种接口,我们只需要调用相应的借口就能实现我们的功能而我们并不需要知道它内部的操作问题,这样一来就大大的减少了开发者的时间并提高开发效率3。OC的方法调用不仅好用而且非常直白,虽然看上去方法或者变量比较长,但我们就凭字面的意思就可以知道该方法的作用,非常的简单快捷。那么有人可能会问到,每一个方法看起来都这么长能切非常多,我们是不是记不住而影响开发。我要

19、告诉大家的是,完全没问题,因为我们根本就不需要去记住这些方法的所有部分,苹果在xcode的工具上给我们提供了一种联想机制,只要我们记住某个方法的一部分就可以联想所有和这个方法相关的剩下部分,可以说苹果这方面做的还是相当不错的。 Objective-C和C+不同,没有子重载,但在和Java上有着相似,虽然不想Java有着多继承,但是我们可以用协议来实现多继承,这是毫无影响的。除此之外,由于OC是动态定型,它的库操作起来要比C+更加方便。当然OC在其他地方也有着它们不可比拟的优势,这里我们就不在一一列举。2.2 iOS系统简介iOS也就是苹果系统的意思,比如说我们用的iPad和iPhone都是iO

20、S来支持的,像我们用苹果手机浏览应用或者听音乐看视频等都是iOS来提供这些基本的技术支持4。当然iOS也是有分工的,它会根据不同的设备和应用程序提供不同的服务层来解决。维持苹果操作系统的这些服务层可以分为四层,如图2.1所示。上面我们可以看到这四个层次的相互作用就是我们来实现iOS的所有操作和实现效果。当然每个层次有每个层次的不同作用。下面就是这四个层的基本介绍。Cocoa Touch层,它是我们开发的必备层,我们用来展示的用户界面,比如用到的UI控件的实现和其它一些功能的实现包括用户的可交互等等都是这一层来实现的。Media层,也就是媒体层他会对像Cocoa Touch这样的底层层进行描绘并

21、给他们提供一些接口实现媒体的播放功能。Core Services层,从字面上我们就能知道它是提供服务,为我们应用的程序提供基础的系统服务,当然不是所以的应用都要用到它,但是这些应用都是以该层为构建基础的。 Core OS层,它的主要作用是给其它层的实现提供构建的基础,一般情况下,这些功能并不会在其它层中直接应用而是应用在它们的框架上。 图2.1 iOS层 2.3 应用程序框架简介 程序的开发可定少不了框架的支持,在iOS开发中我们需要用的到的框架有两种分别是Fondation框架和UIKit框架,因为我们在开发软件过程中需要用到系统库,而系统库就是苹果公司封装好的类方法,它是防止源代码的暴露,

22、并依赖于这两种框架中5。这两种框架都是实现着自己不同的作用,像Foundation主要作用就是为我们的应用程序提供一些基本的服务功能,而UIKit和其它框架都是建立在它上面。Foundation框架里有很多的特性封装,使用它我们可以管理和创建一些集合比如NSArray和NSDictionary等,我们我可用它来访问内存资源创建通知操作数据接口和实现代码的异步操作等。所以框架还是非常重要的,在该项目中同样的也用到了Foundation的框架,我们在使用的时候可以在.h或者是.m文件中导入对应的头文件就可以了。UIKit框架主要作用就是给用户交互提供服务的,比如我们点击某个应用的触摸事件或者是拖动

23、事件都是要用到该框架的处理,因为项目的实现都是和用户直接关联的,像图片的展示等这些都是UIKit框架的支持来实现的。如图2.2就是怎样添加自己需要的框架截图。图 2.2 添加其它框架2.4 开发工具简介该项目的开发工具是Xcode,Xcode是苹果公司开发并运行在Mac OS X操作系统上的集成开发工具,我们可以用该工具开发我们想要的APP,图2.3就是xcode图标。图2.3 xocde图标Xcode版本最开始是3.1,我用的现在版本7.1来实现的开发。Xcode是跟苹果系统进行版本同步的,比如苹果系统有iOS9.1、iOS9.2等都有对应的版本为Xcode7.1和Xcode7.2。当然了,

24、这里不只是让他们想对应而已,每一次的版本都有相应的改动和性能的提升。我们可以在苹果的官网上下载该开发工具也可以在xcode工具内下载,当然,如果你有自己的开发这账号,官网会有最新版本的更新,每当版本有更新之后,并会提醒开发者。Xcode运行于苹果公司的Mac操作系统下,是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序6。 2.5 项目可行性分析2.5.1编程可行性Object-C是对C语言的封装。我们都知道,C语言是比较底层的语言,在程序执行方面运行速度非常快,OC就是苹果根据C这一特性将它进行一次封装,这样我们就可以直接调用相应的接口而不用考虑实现

25、过程就可以完成我们的开发,这样一来不仅没有了以往C语言编程的大量代码出现也使得开发者能够用OC快速实现开发,C语言具有高效性也被object-c继承,但是我们用的object-c并不像C语言用起来那么的复杂,它把复杂高效的语言变得简单高效,这样更利于iOS开发者的使用,也为iOS开发者带来了便捷。而且OC同样具备着多态性和面向对象。我们可以让类方法提供给其他类使用也可以是其它项目中的对象。还有,子类如果继承与父类,那么子类就可以使用父类中的所有方法和变量也可以对父类中的方法和变量进行重写,这样一来,开发中的功能就会变得更加灵活性7。2.5.2 市场因素可行性 信息时代的快速发展,手机行业更是炙

26、手可热,手机应用的开发也是更新还贷比较频繁,一款好的手机软件,不仅能适应市场的发展方向,更是位广大用户带来福利以及便捷。根据当前的市场走势分析,更多的开发者都向着iOS区域的开发方向进行着,由于苹果的软件商城的支付模式越来越成熟而且它的兼容性问题很小吸引了很多的开发者,因为它值得让其他开发者们试一试,由此而来就为iOS的发展奠定了很好的基础8。2.5.3 硬件工具可行性 使用工具方面,开发工具iOS xcode7.1及以上版本,要求mac 10.10.5及以上操作系统,机器装有相应的软件并可运行,内存在2G即可。第3章 购物APP详细模块设计3.1 发现页 在实现之前需要获取数据 我将请求网络

27、的数据进行UISession的单利封装实现代码。在.h文件中定义+(SessionFetch *)defaultSession;- (void)accessNetWithUrlstring:(NSString * )urlStr backRequest:(requestResult)handler;在.m文件中实现interface SessionFetch() NSURLSession * _session;endimplementation SessionFetch- (instancetype)init if (self = super init) NSURLSessionConfigu

28、ration * configuration = NSURLSessionConfiguration defaultSessionConfiguration; _session = NSURLSession sessionWithConfiguration:configuration; return self;+(SessionFetch *)defaultSession static dispatch_once_t once; static SessionFetch * session = nil; dispatch_once(&once, session = self new; )

29、; return session;- (void)accessNetWithUrlstring:(NSString *)urlStr backRequest:(requestResult)handler 3.1.1 图片的展示 这里我们需要定制两种类型的xib,分别是大图片居中靠左(图4.1)和居中靠右(图4.2),定制完之后创建tableView的对象,设置它的代理并实现代理方法,那么这两种xib就充当tableView的两种cell,根据拿来的数据就能将上面的imageView进行赋值然后实现图片的展示9。两种类型的xib定制如图4.1和图4.2,实现后的效果图如图4.3。 图4.1 xi

30、b1的创建 图4.2 xib2的创建图4.3 两种xib展示的效果图从xib定制到图片的显示过程的代码如下。- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath#pragma mark -单数cell显示第一种cell的类型- if (indexPath.row%2 =1 ) _tableView registerNib:UINib nibWithNibName:"FindTableViewCell" bundle:nil

31、forCellReuseIdentifier:"findCellId" FindTableViewCell * cell = tableView dequeueReusableCellWithIdentifier:"findCellId" forIndexPath:indexPath; NSArray * array = cell.imageV0,cell.imageV1,cell.imageV2,cell.imageV3,cell.imageV4,cell.imageV5,cell.imageV6,cell.imageV7,cell.imageV8;

32、_array1.array = array; NSInteger count1 = _array1.count; for (int i = 0;i<count1;i+) UIImageView * imageView = _array1i; NSInteger tag = imageView.tag; NSLog("1-%ld",imageView.tag); if (imageView.tag>=100000) NSInteger index = tag-100000+(indexPath.row-1)*9; 再将图片的tag设置为index对应 imageV

33、iew.tag = index; NSURL * imageUrl = NSURL URLWithString:_dataArrayindex"imageUrl" imageView.userInteractionEnabled = YES; /添加点击事件 UITapGestureRecognizer * tapGR = UITapGestureRecognizer alloc initWithTarget:self action:selector(contentTapGR1:); imageView addGestureRecognizer:tapGR; imageVi

34、ew sd_setImageWithURL:imageUrl; else imageView.tag = (indexPath.row-1)*9+i; NSURL * imageUrl = NSURL URLWithString:_dataArrayimageView.tag"imageUrl" imageView.userInteractionEnabled = YES; /添加点击事件 UITapGestureRecognizer * tapGR = UITapGestureRecognizer alloc initWithTarget:self action:sele

35、ctor(contentTapGR1:); imageView addGestureRecognizer:tapGR; imageView.layer.borderColor = (_bridge CGColorRef _Nullable)(UIColor whiteColor); imageView sd_setImageWithURL:imageUrl; NSLog("1->%ld->%ld",indexPath.row,imageView.tag); cell.selectionStyle = UITableViewCellSelectionStyleNo

36、ne; return cell; cell1.selectionStyle = UITableViewCellSelectionStyleNone; return cell1; 3.1.2 图片点击跳转到另一个控制器这个过程实现的基本就是设置图片的用户可交互,然后给每个图片设置对应的tag值并添加点击事件,那么当我们点击其中的某个图片的时候根据它的tag值用bloc回调的形式将数据传来,然后创建一个视图控制器将得到的数据进行页面的展示即可,图4.4就是点击某个图片之后推出的新界面。 图4.4 图片点击后推出新界面第一种cell类型上的点击方法代码。- (void)contentTapGR1:(

37、UITapGestureRecognizer *)tapGR1 NSLog("%ld",tapGR1.view.tag); FindScrollViewController * findScrollVC = FindScrollViewController alloc init; findScrollVC.imagesArray = _dataArray; findScrollVC.acceptedTag = tapGR1.view.tag; self presentViewController:findScrollVC animated:YES completion: ;

38、第二种cell类型上的点击方法。-(void)contentTapGR2:(UITapGestureRecognizer *)tapGR2 NSLog("%ld",tapGR2.view.tag); FindScrollViewController * findScrollVC = FindScrollViewController alloc init; findScrollVC.imagesArray = _dataArray; findScrollVC.acceptedTag = tapGR2.view.tag; self presentViewController:f

39、indScrollVC animated:YES completion:nil;3.1.3图片实现左右点击和左右滑动翻页这个部分的实现主要是一些逻辑的判断,因为我们要实现既可以滑动让图片翻页与能点击 让图片翻页,所以我们必须实现scrollView的两种代理方法,一个是滚动动画结束对应着点击翻页的操作控制它的滑动,另一个是滚动减速结束对应着滑动翻页的操作控制它的滑动,具体的实现代码如下。#pragma mark - 滚动视图的代理/代码的方式控制滚动视图的偏移- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollVie

40、w if (scrollView=_scrollView) self codeAndHandControlScrollViewScrollOnScrollView:scrollView; - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView if (scrollView=_scrollView) self codeAndHandControlScrollViewScrollOnScrollView:scrollView; 3.1.4 购买的实现 购买的实现就涉及了一个关键的知识点,就是UIwebView,UIwebVie

41、w的好处就是根据你提供的数据链接,然后设置webView的相应属性即可实现新页面的加载。比如说,百度浏览的功能不是我们做的,但是我们可以把它的数据链接交给webView就可以加载百度浏览页面,该APP的购买效果图为图4.5,从图上我们可以看到,这个页面并不是我们自己创建的,而是链接里服务器存在的,我们只是将它加载出来,然而里面的所有东西我们都可以进行操作。图4.5为购买实现的效果图。图4.5 购买功能的实现实现代码如下。- (void)bay:(UIButton *)bayBtn/根据点击传来的id获取详情的URL然后再推出详情页面用UIWebView来显示内容/ NSLog("%&

42、quot;,_imagesArrayoffset"id"); DetailViewController * detailVC = DetailViewController alloc init; /拼接每张图片的购买详情字符串 NSString * elementDetailId = _imagesArrayoffset"id" NSString * elementDetailStr = NSString stringWithFormat:PERELEMENT_BAYDETAIL,elementDetailId; NSLog("每张图片的购买详

43、情URL:%",elementDetailStr); NSURL * elementDetailUrl = NSURL URLWithString:elementDetailStr; /创建webVeiw UIWebView * webView = UIWebView alloc initWithFrame:CGRectMake(0, 20, VIEW_WIDTH, VIEW_HEIGHT-20-40); NSURLRequest * request = NSURLRequest requestWithURL:elementDetailUrl; webView loadRequest

44、:request; webView.backgroundColor = UIColor brownColor; detailVC.view addSubview:webView; self presentViewController:detailVC animated:YES completion:nil;3.1.5 品牌相关用集合视图(UICollectionView)展示 用分段控制器(UISegmentedControl)来显示最新和最热以及每个商品点击后跳转到购买页面,图4.4使我们点击图片推出来的视图,盖视图展示的信息都是与该图片相关信息,在图片的右上角有该图片对应商品的分类比如“韩

45、都衣舍”就是该商品对应的分类,当我们点击“韩都衣舍”这个按钮就可以查看此类商品的其他商品如图4.6所示。 图4.6 品牌相商品展示效果图实现代码如下。#pragma mark - 创建集合视图- (void)createViews /创建滚动视图 _collectionView = UICollectionView alloc initWithFrame:CGRectMake(0, 20, VIEW_WIDTH, VIEW_HEIGHT-20) collectionViewLayout:self addCollectionViewLayoiut; _collectionView.backgro

46、undColor = UIColor brownColor; _collectionView.showsVerticalScrollIndicator = NO; _collectionView.delegate = self; _collectionView.dataSource = self; _collectionView registerClass:UICollectionViewCell class forCellWithReuseIdentifier:"cellId"#pragma mark - 集合视图的代理方法- (NSInteger )collection

47、View:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section return _dataArray.count;- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath UICollectionViewCell * cell = collectionView dequeueReusableCellWithRe

48、useIdentifier:"cellId" forIndexPath:indexPath; cell.contentView.backgroundColor = UIColor brownColor; dispatch_async(dispatch_get_main_queue(), UIImageView * imageView = nil; NSArray * array = cell.contentView.subviews; if (array.count) imageView = array0; imageView sd_setImageWithURL:NSUR

49、L URLWithString:_dataArrayindexPath.item"imageUrl" cell.contentView addSubview:imageView; ); return cell;3.2 品牌页 3.2.1时装分类展示时装分类的展示就是对商品分类的展示比如连衣裙、T恤等,主要用到的还是集合视图,在图片展示之前我们还是要定制一个通用的xib来充当item,通过获取到的数据然后来实现图片的加载显示,如图4.7为xib的定制图4.8为定制后实现的最终效果。图4.7 分类时装xib定制 图4.8 时装分类的展示效果图实现代码如下。NSMutableAr

50、ray * _categoryDataArray;/存放分类的数据UICollectionView * _categoryCV;/分类的集合视图- (UICollectionViewFlowLayout * )createViewLayout UICollectionViewFlowLayout * layout = UICollectionViewFlowLayout alloc init; layout.minimumInteritemSpacing = 10; layout.minimumLineSpacing = 10; layout.sectionInset = UIEdgeInse

51、tsMake(10, 10, 10, 10); CGFloat itemWidth = (VIEW_WIDTH-10*5)/4; layout.itemSize = CGSizeMake(itemWidth, itemWidth+10); return layout;3.2.2 每一类时装点击推出视图控制器实现过程上面的一样,创建一个视图控制器,每个图片设置对应的tag值兵添加点击事件,点击后bloc传值来实现数据的展示,实现的效果图如图4.9。 图4.9 分类商品的点击之后的先关产品展示实现代码如下。#pragma mark -推出leftVC- (void)tableView:(UITab

52、leView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath LeftViewButtonClickedViewController * leftVC = LeftViewButtonClickedViewController alloc init; leftVC.typeProduct = "subject" leftVC.typeString = "code" leftVC.codeString = _featureDtaArrayindexPath.row"code

53、" leftVC.bigImageUrlStr = _featureDtaArrayindexPath.row"innerImgUrl" /根据名字传totalCount NSInteger page = 1; NSInteger pageSize = 63; NSString * codeStr = _featureDtaArrayindexPath.row"code" /最热的strig NSString * hotestStr = NSString stringWithFormat:BRANDPAGE_CATEGORY,"subject","code",codeStr,"hottest",page,pageSize; NSLog("特色主题详情URL:%",hotestStr); SessionFetch defaultSession accessNetWithUrlstring:hotestStr backRequest:(NSData *data, NSError

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论