系统开发目的意义 下载本文

侧边栏模块的主要功能是在主页面和分页面之间进行切换,侧边栏展示的分页面模块包括随便逛逛、精华、有图有真相、穿越、我收藏的、我参与的、热门囧图、内涵图片、加入糗百,设置10个子模块组成。。侧边栏模块设计界面如图4-3所示。

图4-3 侧边栏设计界面

(1)随便逛逛

随便逛逛由干货和嫩草两个子页面组成,干货分页面用于展示干货类别的糗事信息,嫩草分页面用于展示嫩草类别的糗事信息。随便逛逛设计界面如图4-4所示。 图4-4 随便逛逛-干货设计界面

随便逛逛界面的设计主要是Switch控件及Tableview控件的应用,设置Switch控件及Tableview控件的相关属性。通过切换Switch按钮来进行干货和嫩草分页面的切换,其核心代码如下:

_sliderSwitch = [[XWSliderSwitch alloc] initWithFrame:CGRectMake(0, 0, 118, 29)];

_sliderSwitch.labelCount = 2;

_sliderSwitch.delegate = self;

[_sliderSwitch initSliderSwitch];

[_sliderSwitch setSliderSwitchBackground:[UIImage

imageNamed:@\"top_tab_background2.png\"]];

[_sliderSwitch setLabelOneText:@\"干货\"];

[_sliderSwitch setLabelTwoText:@\"嫩草\"];

点击按钮控件时,通过改变获取数据的url来改变分页面的内容,从而达到随着按钮切换内容也随着改变的效果,其核心代码如下:

NSURL *url = nil;

if (type == QiuShiTypeSuggest) {

url = [NSURL URLWithString:api_stroll_suggest(30, page)];

}

else {

url = [NSURL URLWithString:api_stroll_latest(30, page)];

}

self.strollRequest = [ASIHTTPRequest requestWithURL:url];

self.strollRequest.delegate = self;

[self.strollRequest startAsynchronous];

(2)精华

精华模块主要用于展示精华模块的糗事信息,其中包括日,周,月的分页面。分页面根据近一日,一周,一月的糗事信息进行分类。其精华模块界面设计如图4-5所示。

图4-5 精华设计页面

(3)穿越

该模块主要用于显示穿越模块的相关信息,通过点击穿越按钮可以穿越到随机的一个时间查看当天糗事信息。穿越模块界面设计如图4-6所示。

图4-6 穿越界面

首先需要创建穿越页面,其核心代码如下所示:

[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage

imageNamed:@\"main_background.png\"]]];//设置背景图片

self.navigationItem.leftBarButtonItem =[[[UIBarButtonItem

alloc]initWithCustomView:_sideButton] autorelease];

self.navigationItem.rightBarButtonItem=[[[UIBarButtonItem alloc] initWithCustomView:_timeAgainButton] autorelease];

self.traversingTableView.scrollsToTop = YES;

在穿越页面,点击穿越按钮,获取一个随机的穿越时间,之后获取该时间的糗事进行刷新显示,点击按钮后的穿越效果如下图4-7所示:

图4-7 穿越-设计界面

实现穿越随机穿越的核心代码如下所示:

//随机按钮,获取随机日期,重新请求

self.title = @\"穿越中...\";

self.dateString = [Toolkit dateStringAfterRandomDay];

_currentTraversingPage = 1;

[_traversingTableView setContentOffset:CGPointZero animated:YES];

[self initTraversingRequestWithType:_qiushiType

andPage:_currentTraversingPage];

请求数据的关键代码如下所示:

NSURL *url = [NSURL

URLWithString:api_traversing_history(self.dateString, 30, page)]; self.traversingRequest = [ASIHTTPRequest requestWithURL:url]; self.traversingRequest.delegate = self;

[self.traversingRequest startAsynchronous];

(5)有图有真相

有图有真相模块主要用于有图的糗事显示。其中包括硬菜和时令两个分页面。硬菜是网络获取的随机的糗事信息,而时令是当前季节时令对应相关的糗事信息。页面效果图如图4-8所示:

图4-8有图有真相-

实现创建页面的核心代码如下所示:

[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@\"main_background.png\"]]]; self.navigationItem.leftBarButtonItem=[[[UIBarButtonItem alloc] initWithCustomView:_sideButton] autorelease];

self.navigationItem.rightBarButtonItem=[[[UIBarButtonItem alloc] initWithCustomView:_postButton] autorelease];

self.navigationItem.titleView = _sliderSwitch;

self.imageTruthTableView.scrollsToTop = YES;

实现硬菜和时令分页面的切换效果的关键代码如下所示:

_sliderSwitch = [[XWSliderSwitch alloc] initWithFrame:CGRectMake(0, 0, 118, 29)];

_sliderSwitch.labelCount = 2;

_sliderSwitch.delegate = self;

[_sliderSwitch initSliderSwitch];

[_sliderSwitchsetSliderSwitchBackground:[UIImageimageNamed:@\"top_tab_background2.png\"]];

[_sliderSwitch setLabelOneText:@\"硬菜\"];

[_sliderSwitch setLabelTwoText:@\"时令\"];

(5)内涵图片

本模块主要用于展示内涵图片,其中图片可以全屏查看,保存到手机相册。页面效果如下图4-9所示:

图4-9内涵图片设计界面

首先需要创建本页面的基本框架,创建的代码如下所示:

[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@\"main_background.png\"]]]; self.navigationItem.leftBarButtonItem=[[[UIBarButtonItem alloc] initWithCustomView:_sideButton] autorelease];

self.collectionView=[[PSCollectionView

alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

[self.view addSubview:self.collectionView];

本页面的主要采用了PSCollectionView来实现瀑布流效果的展示。运用

PSCollectionView实现页面信息的刷新和不断加载功能。其中实现刷新和加载的关键代码如下所示:

if (_refreshHeaderView == nil) {//下拉刷新页面信息

EGORefreshTableHeaderView *view=[[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0,0-CGRectGetHeight(_collectionView.bounds), CGRectGetWidth(self.view.frame),

CGRectGetHeight(_collectionView.bounds))];

view.delegate = self;

_collectionView.headerView = view;

_refreshHeaderView = view;

[view release];

}

[_refreshHeaderView refreshLastUpdatedDate];

if (_loadMoreFooterView ==nil) {//上拉加载更多美图信息

_loadMoreFooterView = [[LoadMoreFooterView alloc]

initWithFrame:CGRectMake(0, 0, 320, 40)];

_loadMoreFooterView.delegate = self;

_collectionView.footerView = _loadMoreFooterView;

}

当选中其中一个图片(cell)时,就会进入全屏查看图片页面,在这个页面可以进行保存操作。效果如下图4-10所示:

图4-10图片保存

实现这个图片详情页面的关键代码如下所示:

NSDictionary *dict = [_girlArray objectAtIndex:index];

QiuShiImageViewController *qiushiImageVC=[[QiuShiImageViewController alloc]

initWithNibName:@\"QiuShiImageViewController\" bundle:nil];

[qiushiImageVC setQiuShiImageURL:[dict

objectForKey:@\"large_url\"]];

qiushiImageVC.modalTransitionStyle =

UIModalTransitionStyleCrossDissolve;

[[UIApplication sharedApplication] setStatusBarHidden:YES

withAnimation:UIStatusBarAnimationFade];

[self presentViewController:qiushiImageVC animated:YES completion:nil];

[qiushiImageVC release];

(6)热门囧图

本模块主要用于最近时段热门的一些搞笑的,囧的糗事图片。和上个内涵图片类似也是主要运用了瀑布流效果来展示图片。同时也可进入图片详情进行图片的全屏查看和保存。效果图如下图4-11所示:

图4-11热门囧图设计界面

(7)糗事详情页面各功能实现

本页面主要用于实现包括糗事详情的查看,糗事的评论等功能。

详情页面效果如下图4-12所示:

图4-12糗事详情设计界面

详情页面评论的展示采用tableview进行展示,创建详情页面的核心代码如下所示:

[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@\"main_background.png\"]]]; UIImage *backgroundImage = [UIImage

imageNamed:@\"block_background.png\"]; backgroundImage=[backgroundImage

resizableImageWithCapInsets:UIEdgeInsetsMake(15, 320, 14, 0)]; _commentBackgroundImageView.image = backgroundImage;

self.navigationItem.leftBarButtonItem=[[[UIBarButtonItem alloc] initWithCustomView:_backButton] autorelease];

self.navigationItem.rightBarButtonItem=[[[UIBarButtonItem alloc] initWithCustomView:_shareButton] autorelease];

[_qiushiDetailTableView setSeparatorColor:[UIColor

colorWithPatternImage:[UIImage

imageNamed:@\"block_line.png\"]]];

在点击添加评论后进入评论页面,通过下面代码简单创建该页面:

[self initBackgroundView];

[self initToolBar];

_commentTextView.placeHolder = @\"这里不欢迎贴小广告、谩骂、色情、贩毒、卖军火等行为,否则您的言论将有可能作为禁言的呈堂证供的哟。\";

[_commentTextView becomeFirstResponder];

创建后的评论页面效果如下图4-13所示:

图4-13发表评论设计界面