收藏 分享(赏)

基于iOS端电影资讯类APP的设计与实现-计算机毕业论文.doc

上传人:精品资料 文档编号:7767446 上传时间:2019-05-25 格式:DOC 页数:23 大小:14.93MB
下载 相关 举报
基于iOS端电影资讯类APP的设计与实现-计算机毕业论文.doc_第1页
第1页 / 共23页
基于iOS端电影资讯类APP的设计与实现-计算机毕业论文.doc_第2页
第2页 / 共23页
基于iOS端电影资讯类APP的设计与实现-计算机毕业论文.doc_第3页
第3页 / 共23页
基于iOS端电影资讯类APP的设计与实现-计算机毕业论文.doc_第4页
第4页 / 共23页
基于iOS端电影资讯类APP的设计与实现-计算机毕业论文.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、 学号:1128524041基于 iOS 端电影资讯类 APP 的设计与实现学院名称: 软件学院专业名称: 计算机科学与技术年级班别:2011 级 1 班姓 名:张琛指导教师:赵永进_2015 年 05 月河南师范大学本科毕业论文河南师范大学本科毕业论文2基于 iOS 端电影资讯类 APP 的设计与实现摘 要社会近年来迅猛的发展,使得我国人民的生活质量飞速提高,去电影院看电影成了很多大众消费人群的习惯;本文所论述的就是一个基于 iOS 移动客户端设计的影视信息类 APP,可以借助 iPhone、iPad、iTouch 等移动终端实现一个可以再手机端任意查看你想看到的电影讯息的功能,它查看关于电

2、影类咨询新闻;还可以随时随地了解在各大院线正在上映的电影信息与排片时间,还可以查看即将上映的电影日期;另有多种电影排行与分类;并且可以进行电影分类搜索,关键字检索,可以找到任意一部电影,观看预告片,浏览剧照,更有演员详情,浏览网友评论等功能。本设计采用 XCode 作为开发工具,以 Objective-C 作为开发语言,基于UIKit, UIFoundation 等基本 iOS 框架,采用 MVC 模式,JSON 数据交互和 SQLite 数据库,实现了娱乐性手机 APP 的基本功能 关键词 iPhone;电影;Objective-C;JSON;MVCThe design and implem

3、entation of iOS information based on APP filmAbstractOver the past eleven years ,Rapid development of society, the quality of life of our peopleincreased rapidly, to improve the quality life of our person continue to go to the Movie Theatre, a lot of mass consumer groups living habits; this design i

4、s based on APP iOS platform and mobile terminal information, can use iPhone, iPad, iTouch and other mobile terminals to achieve a then the mobile terminal to see any movie you want to see the message function, its view on film consulting news; showing in theaters and movie information sheet, You can

5、 also check the update by the film so far; another variety of movie ranking and classification; and the film classification search keyword search, can find any movie, watch the trailer, browse more actors stills, details, visit the user comments and other functions. This design uses XCode As one tec

6、hnology progress of the tool, using Objective-C as Development of thedevelopment of language, based on UIKit, UIFoundation and other basic iOS framework, using MVC model, JSON data and SQLite database, to achieve the basic functions of mobile entertainment APPKeywordsiPhone;Film ;Objective-C;JSON ;M

7、VC河南师范大学本科毕业论文3前 言中国电影市场近几年呈现井喷式发展,票房和观影人数连年快速增长;伴随着市场的发展也出现诸多问题,雷片、烂片的横行给观众的观影体验带来不小的困扰。怎样才能选择一部自己喜欢的电影,从而避免花冤枉钱看烂片呢?这时候就需要一个专业的影视信息软件,在这里你可以轻松浏览到正在上映的各大影片的详细信息,从剧情简介,到演员介绍,还有精彩剧照和电影预告片,更有广大网友对影片的评价与打分。应有尽有,让您从容选择,快乐观影;同样,它还包含即将上映的电影信息,让您足不出户便可对以后的观影行程做出计划;并且当您再家中想在网上观看电影,又不知道那些电影好看的时候,这里更有海量影片分类信息

8、,有 TOP250、北美票房榜与口碑榜,还有电影标签分类,喜剧、战争、恐怖、魔幻、爱情、动作,想看什么,就有什么。本设计正是这样一个手机应用来看电影。1 系统分析1.1 可行性分析如今,移动互联网的飞速发展 2,使人民的生活节奏也变得快了起来,越来越多人选择从手机中获取信息,而移动应用开发产业也愈来愈明朗起来,占目前市场份额最大的移动操作平台当数苹果的 iOS 和谷歌的安卓,安卓以其开源性、多任务、移动设备多种多样等各种优点,占据智能手机的一大部分;然而它同样有着很明显的不足,如:多任务导致系统流畅性降低,各种机型的配置不一样,以至于开发过程中难免顾此失彼,开源也导致了各种应用优劣参差不齐,崩

9、溃闪退现象时有发生。而 iOS 则一直以它流畅的操作体验而著称,闭源和 iOS 的审核机制也能保证引用的安全和稳定性,众多的系统进程都在苹果的掌握之中,同一时间只运行一个应用程序,最大程度地保证系统内存的充分利用,相比安卓节能且流畅。苹果的 MAC OS X 操作系统和 iOS 操作系统,属于类 UNIX 商业级系统。iOS 系统所使用的最基本框架为 Foundation 框架,它是一个非常灵活和强大的实用性的框架,可以建立基于 Web 的应用系统。提供多种多样 Web UI 组件,如表格,按钮,标签等。借鉴响应式 Web 设计的思路和方法。 NSObject 类是所有类的根类,它定义了对象的

10、属性和行为。另外还有一些代表基本数据类型的类,如 NSString 类、NSArray 类、NSDictroy 类一些代表系统信息的类,如 NSDate 类等等。由以上可行性分析可得,不论是在社会环境上还是在技术上,基 iOS 平台的来看电影 APP 的设计与开发都是可行的。河南师范大学本科毕业论文41.2 需求分析通过对市面上已经上线的影视类 APP 的考察、分析以及对网民的调查,需要本设计实现以下功能:(1) 美观易用的操作界面,清晰的流程,能够保证操作的便易性;(2) 正确规范的信息源,保证内容真实可靠;(3) 可以浏览影视讯息类新闻;(4) 可以查看各大院线正在上映与即将上映的电影;(

11、5) 可以对自己喜欢的电影或新闻进行收藏,供以后查看;(6) 可以观看电影的预告片;(7) 有关于电影的排行榜与分类标签;(8) 可通过关键字搜索电影;2 概要设计2.1 系统设计思想iOS 开发有很多设计模式,如 MVP、MVC、MVVM 等等,本次设计采用的是最经典的MVC 模式,其结构如图 2.1 所示:图 2.1 MVC 结构的关系和功能MVC 全称是 Model View Controller,它是把一个应用程序从思想上分成三个部分 3:模型、视图和控制器,是一种经典软件设计模型,这个模型代表应用程序的数据,逻辑运算和数据处理;视图代表着用户可以看到的对象,视图对象可以进行绘制,并可

12、以相应用户的操作;控制器作为应用程序之间的媒介,模型和视图之间的通信管理。它充分降低了程序的耦合性,保证应用程序各个部分的独立性,对以后的修改和版本迭代打造河南师范大学本科毕业论文5了一个良好的基础用。MVC 在 iOS 中的基本工作内容,iOS 所有窗口和控件从 UIView 类和他的子类来继承,它代表着 MVC 中的 V,不同的视图和模型和视图之间不同的对应处理,不能互相交流,只能发送消息的控制器,控制器可以通过通知和 KVO 与模型进行简介通讯,同样,控制器和视图直接也可以通过 delegate 和 datasoure 进行通讯。2.2 系统功能设计用户进入程序后的基本视图逻辑如图 2.

13、2 所示:图 2.2 用户功能用户可以查看请问详情,浏览图片新闻,观看新闻里附带的视频;可以查看正在上映的电影与即将上映的电影,查看电影详情、电影剧照图集、演员详情、电影评论与观看预告片;还可以根据关键字搜索电影、查看电影分类标签和各大电影榜单;并且可以对喜欢的新闻与电影进行收藏等操作。3 详细设计3.1 程序主要文件程序的主要文件如图 3.1 所示:用户进入影讯 正在/即将上映 我的新闻详情 电影详情收藏电影电影剧照设置猜你喜欢收藏电影电影评论电影简介新闻视频新闻图集搜索/榜单/标签河南师范大学本科毕业论文6图 3.1 程序文件结构Application 是程序入口文件;Base 文件夹主要

14、存放自定义封装的类文件 4DataBase 主要存放数据库工具文件;Handler 用于存放头文件和自定义的宏文件;NetWork 是网络请求类文件,Resource 存放程序所有图片,Util 存放第三方类库;3.2 第三方类库开发过程中需要用到很多实用的开源类库,本程序主要用了以下几种:(1) SDWebImageSDWebImage 是一个非常经典的 iOS 第三方库加载网络图片,他放在设备箱的位置通过各种各样的方式保存图像高速缓存,并且在其中做好的对缓存的管理,并且在最近的版本中,也开放了一些让用户可以管理 cache 的接口,这样使得用户操作起来更加灵活,可以满足自己 app 的不同

15、需求。(2) MJRefreshMJRefresh 是国内知名的第三方类库,他可以实现的程序是最常用的对表单进行下拉刷新和上拉加载的功能,而且易于使用,易于集成。可以自定义上下拉刷新的文字说明。并且在最近的版本中还可以自定义上拉下拉显示动态图片。3.2 主要界面设置(1) 程序主界面用户进入应用时,可以看到如图 3.2 所示界面,主界面主要包含三大模块,影讯、河南师范大学本科毕业论文7上映和我的界面切换,默认显示影讯页面,左上角按钮点击可弹出搜索界面如图 3.3 所示:图 3.2 进入主界面图 3.3 弹出搜索界面主界面部分主要代码如下:/创建分段选择HYSegmentedControl *

16、segmentedControl =HYSegmentedControl alloc initWithOriginY:0 Titles:“影讯“ ,“上映“ ,“我的“ delegate:self;self.segmentedControl = segmentedControl;self.view addSubview:segmentedControl;segmentedControl release;/创建视图父 viewControllerUIViewController * currentViewController =UIViewController alloc init;self.c

17、urrentViewController = currentViewController;/显 示使用的 viewUIView * contentView =UIView alloc initWithFrame:ROOT_CONTENTVIEW_FRAME;self.view addSubview:contentView;/创建 searchBar 的 viewself.baseSearchBar creatSearchViewFinishBack:(UIView *searchView)self.view addSubview:searchView;/电影上映列表页面河南师范大学本科毕业论文

18、8BSMViewController * bsmVC =BSMViewController alloc init;self.bsmVC = bsmVC;bsmVC.view.frame = ROOT_VIEW_FRAME;self addChildViewController:bsmVC;bsmVC release;/电影影讯页面MovieNewsTableController * movieNewsVC =MovieNewsTableController alloc init;self.movieNewsVC = movieNewsVC;movieNewsVC.view.frame = RO

19、OT_VIEW_FRAME;self addChildViewController:movieNewsVC;movieNewsVC release;/我的信息页面MyTableViewController * myInfoVC =MyTableViewController alloc init;self.myInfoVC = myInfoVC;myInfoVC.view.frame = ROOT_VIEW_FRAME;self addChildViewController:myInfoVC;myInfoVC release;/设置初始视图contentView addSubview:movie

20、NewsVC.view;self.currentViewController = movieNewsVC;contentView release;currentViewController release;三个界面之间的切换可通过点击上方选择框进行,基于这个目标,我们能找到的有效可行的方法就是创立三个窗口属性和一个老的 OLDviewcontroller 属性 5,当点击某一个模块时,把这个 UIViewcontroller 与 OLDviewcontroller 进行比较,如果相同则不作处理,如果差异是跳点击窗口,并且把这个 UIViewcontroller 设置成原有的OLDviewcon

21、troller;其代码如下:if (self.currentViewController=self.bsmVC UIViewController *oldViewController=self.currentViewController;switch (index) case 0:NSLog(“影讯“);self transitionFromViewController:self.currentViewController toViewController:self.movieNewsVC duration:0.1 options:UIViewAnimationOptionTransition

22、CrossDissolve animations: completion:(BOOL finished) if (finished) 河南师范大学本科毕业论文9self.currentViewController=self.movieNewsVC;elseself.currentViewController=oldViewController;break;case 1:NSLog(“上映“);self transitionFromViewController:self.currentViewController toViewController:self.bsmVC duration:0.1

23、options:UIViewAnimationOptionTransitionCrossDissolve animations: completion:(BOOL finished) if (finished) self.currentViewController=self.bsmVC;elseself.currentViewController=oldViewController;break;case 2:NSLog(“我的信息“);self transitionFromViewController:self.currentViewController toViewController:se

24、lf.myInfoVC duration:0.1 options:UIViewAnimationOptionTransitionCrossDissolve animations: completion:(BOOL finished) if (finished) self.currentViewController=self.myInfoVC;elseself.currentViewController=oldViewController;break;default:break;(2) 新闻详情点击新闻列表中的任意一个新闻,进入新闻详情页如图 3.4 所示;点击右上方星标可对这个新闻进行收藏;收

25、藏功能可以用数据库来实现,iOS 最常用的是河南师范大学本科毕业论文10SQLite 数据库,它可以分别对新闻的标题,内容,图片等进行本地存储,读取时再用数据库进行加载显示。如果新闻列表中某个新闻标题下有播放图标,则表示这则新闻内有视频可播放,视频播放用的是 iOS 程序内自带的视频播放控件,通过传入视频 url 地址进行加载播放,还可以对视频进行快进快退等操作。图 3.4 新闻详情页图 3.5 新闻详情(图集)视频播放代码如下所示:/判断是否有视频if (new.videoCover!=nil NSURL * url=NSURL URLWithString:urlStr;MPMoviePla

26、yerController * movie = MPMoviePlayerController alloc initWithContentURL:url;movie.view.frame=CGRectMake(10, 100+self.digestLabel.movie.controlStyle = MPMovieControlStyleDefault;self.moviePlayer=movie;movie.shouldAutoplay=NO;movie prepareToPlay;self addSubview:movie.view;movie release;河南师范大学本科毕业论文11

27、如果该新闻有图片集合,会在详情页图片的右下角标注图集如图 3.5 所示,点击进入浏览图集页面如图 3.6 所示:图 3.6 图集浏览图集界面用的是 uitableview 上放入 uiscrollview 进行滚动加载 6,根据获取的图片的url 地址动态对图片进行缓存加载,下方还有弹出的透明框,设置 uiview 的 alpha 值,显示图片的基本信息,可通过 uiview 的点击事件设置点击可消失,具体代码如下所示:UITableViewCell * cell=tableView dequeueReusableCellWithIdentifier:“still“;if (!cell) ce

28、ll=UITableViewCell allocinitWithStyle:UITableViewCellStyleDefault reuseIdentifier:“still“ autorelease;cell.selectionStyle=UITableViewCellSelectionStyleNone;UIScrollView * bigScr=UIScrollView allocinitWithFrame:CGRectMake(0, 0, UIScreen mainScreen.bounds.size.width, UIScreen mainScreen.bounds.size.he

29、ight);self.tableView addSubview:bigScr;bigScr.pagingEnabled=YES;bigScr.bounces=NO;bigScr.delegate=self;bigScr.contentSize=CGSizeMake(UIScreen mainScreen.bounds.size.width*self.imageArray count, UIScreen mainScreen河南师范大学本科毕业论文12UIView * view=UIView allocinitWithFrame:CGRectMake(0, UIScreen mainScreen

30、qds.sqze.hqeif (self.taeearView.frame.oeeigin.ght-170, UIScreen mainScreen.bonds.1ize.wqdth, 120);self.stillView=view;self.view addSubview:view; if (self.imageArray.count!=0) Image * image=self.imageArray objectAtIndex:0;UILabel * nameLabel=UILabel allocinit;nameLabel.text=image.setname;self.nameLab

31、el=nameLabel;nameLabel.textAlignment=NSTextAlignmentLeft;nameLabel.textColor=UIColor whiteColor;nameLabel.font=UIFont systemFontOfSize:14;nameLabel.frame=CGRectMake(5, 5, 300, 30);view addSubview:nameLabel;nameLabel release; UILabel * numLabel=UILabel allocinit;numLabel.text=image.setname;self.numLa

32、bel=numLabel;self.numLabel.text=NSString stringWithFormat:“1/%d“,self.imageArray count;numLabel.textAlignment=NSTextAlignmentRight;numLabel.textColor=UIColor whiteColor;numLabel.font=UIFont systemFontOfSize:14;numLabel.frame=CGRectMake(270,5, 40, 30);view addSubview:numLabel;numLabel release; UILabe

33、l * label=UILabel allocinit;self.titleLabel=label;label.textColor=UIColor whiteColor;self.titleLabel.text=image.imagetitle;label.textAlignment=NSTextAlignmentLeft;label.font=UIFont systemFontOfSize:12;label.frame=CGRectMake(5, 40, 300, 15);view addSubview:label;label release; for (int i = 0 ; iself.

34、imageArray count; i+) Image * image=self.imageArray objectAtIndex:i;UIScrollView * scr=UIScrollView allocinitWithFrame:CGRectMake(UIScreen mainScreen.bounds.size.width*i, 0, UIScreen mainScreen.bounds.size.width, UIScreen mainScreen.bounds.size.height);bigScr addSubview:scr;scr.delegate=self;scr.min

35、imumZoomScale=0.5;河南师范大学本科毕业论文13scr.maximumZoomScale=2.0;UIImageView * stillView=UIImageView allocinitWithFrame:UIScreen mainScreen.bounds;stillView sd_setImageWithURL:NSURL URLWithString:image.url placeholderImage:nil options:SDWebImageRetryFailed completed:(UIImage *image, NSError *error, SDImageC

36、acheType cacheType, NSURL *imageURL) CGFloat hight=(UIScreen mainScreen.bounds.size.width*image.size.height)/image.size.width;CGRect fram=stillView.frame;fram.size.height=hight; stillView.frame=fram;stillView.center=CGPointMake(UIScreen mainScreen.bounds.size.width/2, (UIScreen mainScreen.bounds.siz

37、e.height/2)-40);/self.titleLabel.text=image.imagetitle;scr addSubview:stillView;scr release;stillView release;self.tableView.backgroundColor=UIColor blackColor;cell.backgroundColor=UIColor blackColor;view release;return cell;(3) 上映界面上映界面显示各大院线正在上映与即将上映的电影,如图 3.7 所示:图 3.7 上映界面 图 3.8 即将上映即将上映界面默认不显示,可

38、点击下方查看看即将上映进行加载如图 3.8 所示,这样河南师范大学本科毕业论文14可节省系统内存,保证程序的流畅性,整个界面的搭建用的是 UICollectionView7,每一个 cell 都有两个控件,上方用 uiimageview 进行电影剧照的加载,下方 uilabel 显示电影名称与评分,设置每一个试图间的间距,是整体保持平衡、整齐和美观。具体代码如下所示:#pragma mark 即将上映电影- (void)onNextMoviesView:(UITapGestureRecognizer *)senderif (self.flag = YES) return;RequestData

39、 requestWithUrlStr:ONNEXTMOVIES_URL target:self FinishCallbackBlock:(NSMutableDictionary * result)NSArray * array = result objectForKey:“entries“;Movie * movie = Movie alloc init autorelease;movie setValuesForKeysWithDictionary:dic;self.onNextMoviesArray addObject:movie;self.collectionView reloadDat

40、a;self.flag = YES;#pragma mark 增补视图- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPathUICollectionReusableView * reusableview = nil;if (kind = UICollectionElementKindSectionFooter) BSM

41、FooterView * footerView = collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:“BSMFooterView“ forIndexPath:indexPath;self.footerView = footerView;reusableview = footerView;switch (indexPath.section) case 0:if (self.bSMArray.count != 0) foote

42、rView setHidden:NO;if (self.flag = NO) UITapGestureRecognizer * tap = UITapGestureRecognizer alloc initWithTarget:self action:selector(onNextMoviesView:);footerView addGestureRecognizer:tap;tap release;河南师范大学本科毕业论文15elsefooterView setHidden:YES;break;case 1:footerView setHidden:YES;break;default:bre

43、ak;return reusableview;- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPathMovieInfoViewController * movieInfoVC = MovieInfoViewController alloc init;Movie * movie = nil;if (indexPath.section = 0) movie = self.bSMArray objectAtIndex:indexPath.ro

44、w;elsemovie = self.onNextMoviesArray objectAtIndex:indexPath.row;movieInfoVC.movie = movie;self viewController.navigationController pushViewController: movieInfoVC animated:YES;movieInfoVC release;(4) 电影详情界面电影详情分三个模块,分别为简介、剧照与评论,如图 3.9 所示,点击右上方星标可对此电影进行收藏,收藏功能同样用的是数据库,点击剧照上的播放按钮可进入预告片界面,可播放此电影的各个预告片

45、。这个界面的主要用 UITableView 控件,在视图的最低成创建一个 scrollView,让其加载此电影剧照的毛玻璃效果,然后在 UIScrollView 添加三个小的 UIScrollView,分别在这三个小的 UIScrollView 中添加 UITableView8,并添加滑动手势事件,当往上滑的时候剧照消失,显示简介两字,左右滑时,切换界面并且使该界面标题变大,加延时动画可河南师范大学本科毕业论文16是变大的过程流畅。具体代码如下所示:图 3.9 电影详情界面UITableViewCell *cell = tableView dequeueReusableCellWithIden

46、tifier:“movie“;if (!cell) cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleDefault reuseIdentifier:“movie“ autorelease;UIScrollView * scrollView = UIScrollView alloc initWithFrame:CGRectMake(0, 0,FRAME_WIDTH, MOVIES_SCROLLVIEW_HEIGHT);/是否回弹scrollView.bounces = NO;scrollView.backgroundC

47、olor = UIColor redColor;self.scrollView = scrollView;scrollView.contentOffset = CGPointMake(FRAME_WIDTH,MOVIES_SCROLLVIEW_HEIGHT);/整屏滚动scrollView.pagingEnabled = YES;scrollView.showsHorizontalScrollIndicator = YES;scrollView.showsVerticalScrollIndicator = YES;/scrollowView.backgroundColor = UIColor

48、redColor;scrollView.contentSize = CGSizeMake(FRAME_WIDTH*3, MOVIES_CELL_HEIGHT);scrollView.delegate = self;cell addSubview:scrollView;/顶部河南师范大学本科毕业论文17BSMInfoTopView * topView = BSMInfoTopView alloc initWithFrame:CGRectMake(0, 0, FRAME_WIDTH*3, 150);self.tabBarView = topView.tabBarView;scrollView addSubview:topView;topView release;/底部简介MovieIntroViewController * introductionVC = MovieIntroViewController alloc init ;self.introductionVC = introductionVC;introduct

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报