息, 新闻正文内容以JSON文件形式保存于应用程序沙盒的缓存空间里, 图片内容以图片二进制形式保存于应用程序的缓存空间里。
控制器层中包括引擎层和逻辑层。正文排版封装了为新闻正文数据排版的方法对正文信息的JSON文件进行解析和处理, 重新拼装出最终的正文HTML代码。需要预先计算所有视图框架的高度以及字符排版等特殊处理, 为视图层展示做准备。逻辑层主要负责应用逻辑部分, 包括数据调用逻辑、数据与视图关系的逻辑等等。逻辑层在代码上主要表现为各个视图控制器( UIViewcontroller) , 设置了整个应用各个视图之间如何切换, 数据关系如何协调等, 是衔接视图层和数据层最重要的部分。其中在本次设计中我使用了继承的方法来简化代码。
视图层主要基于UIKIT框架的重写, 是对UIView 、 UIController、UITable ViewCell等基类view的封装, 构成了应用中所有的视图控件。UIKit提供了iOS视图层中的各个类, 对各种基本控件进行组装和排版, 并封装一部分界面逻辑代码, 构成应用需要的特定的视图控件, 如头条界面主列表单元格、在用户体验至关重要的移动应用中, 为了让视觉效果更加华丽, 大部分视觉控件设置了相应的视觉图片, 如各种控件按钮、背景图片和部分视觉元素等。
第4章 详细设计与实现
整体易车App,简洁,大方,美观,时时刻刻注用户体验,从流量,操作方便,直观等的角度去思考,进而设计出了如下的易车App。
4.1 引导界面
引导界面如图2-1所示:
图2-1 引导界面
代码如下:
// NSUserDefaults中读取第一次加载程序的标志位
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSString * friLoad = [defaults objectForKey:@"Frist"];
if (friLoad.length == 0) {
[self createFirstLoadView];
}
}
UIImageView * imgView = [[UIImageView alloc] initWithFrame:CGRectMake(320*i, 0, 320, 480)];
imgView.image=[UIImageimageNamed:[NSString stringWithFormat:@"help%d.png",i+1]];
[s addSubview:imgView];
}
当程序第一次运行时NSUserDefaults中的标志位还没有,所以会进入引导界面,方便用户更加清晰的了解管应用的功能以及改动信息,但以后再次运行该程序时,我们可以通过判断标志位是否存在来决定是否进入引导界面,如果NSUserDefaults已经有了该标志位,则不会进入该引导界面,否则会进入引导界面,同时还会在NSUserDefaults建立该标志位,防止下次运行程序还会进入次引导界面。
4.2 头条界面
头条界面如图3-1所示:
图3-1 头条界面
主要代码如下:
view=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 120)];
_pageController=[[UIPageControl alloc]initWithFrame:CGRectMake(240, 80, 60, 30)]; _pageController.numberOfPages=5;
_pageController.userInteractionEnabled=NO;
_scrollerView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 120)]; [view addSubview:_scrollerView];
[view addSubview:_pageController];
_scrollerView.contentSize=CGSizeMake(320*5, 120);
_scrollerView.delegate=self;
_scrollerView.pagingEnabled=YES;
_scrollerView.showsHorizontalScrollIndicator=NO; for (int i=0; i<5; i++) {
UIImageView *im=[[UIImageView alloc]initWithFrame:CGRectMake(320*i, 0, 320, 120)];
TouTiaoModel *m=_dataArr[i];
[im setImageWithURL:[NSURL URLWithString:m.picCover]];
UILabel *l=[[UILabel alloc]initWithFrame:CGRectMake(10, 80, 200, 30)];
[im addSubview:l];
l.text
上一篇:
网上手机销售系统论文
下一篇:
法律专业开题报告范文