IOS开发之程序首次启动时加载关于程序应用的简介
2012-06-13 12:27
603 查看
我们在IOS应用中很多时候会看到关于第一次应用程序时候会有一个scrollview介绍程序如何使用,这个介绍怎么做呢,下面是我的思路;
程序第一次启动,在加载rootViewController的viewDidLoad里面判断本地沙盒documentsDirectory是否存在文件firstOpenFile,如果不存在则创建(并且加载另一个viewController介绍程序应用),如果存在程序则正常运行;
在rootViewController的VIewDidLoad函数中,如下
- (void)viewDidLoad {
[superviewDidLoad];
flc = [[FirstLoadControlleralloc]
init]; //flc是全局变量,在dealloc中销毁;
if ([ flc isFirstOpen]) {
[self.view
addSubview: flc .view] ;
[ flc firstOpened] ;
}
}
FirstLoadController.h内容如下:
#import
<UIKit/UIKit.h>
@interface
FirstLoadController : UIViewController<UIScrollViewDelegate>{
NSArray *imgArray ;
}
@property (retain,
nonatomic) IBOutlet UIScrollView *introductionScrollView;
@property (retain,
nonatomic) IBOutlet UIPageControl *pageController;
@property (retain,
nonatomic) IBOutlet UILabel *label;
@property (retain,
nonatomic) NSArray *imgArray ;
@property (retain,
nonatomic) IBOutlet UIButton *btn;
- (NSArray *)getImgArray ;
- (void)goPage;
- (NSArray *)getTextArray ;
- (IBAction)btnClick:(id)sender;
- (BOOL)isFirstOpen;
- (void)firstOpened;
@end
FirstLoadController.m内容如下:
- (void)viewDidLoad {
[superviewDidLoad];
self.imgArray =
[self getImgArray];
introductionScrollView.contentSize = CGSizeMake([imgArray count]*320, 460)
;
introductionScrollView.backgroundColor = [UIColor blackColor];
introductionScrollView.frame = CGRectMake(0, 0, 320, introductionScrollView.frame.size.height)
;
for (int i = 0 ; i < [imgArray
count]; i++) {
UIView *pageView = [[UIViewalloc]
init] ;
UIImage *img = [[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:[imgArrayobjectAtIndex:i] ofType:@"png"]]
;
UIImageView *imgView = [[UIImageViewalloc]
initWithImage:img] ;
[img
release] ;
imgView.frame =
CGRectMake(10,10,200,
200) ; //图片大小,图片位于oneView的位置
[pageView
addSubview:imgView] ;
[imgView
release] ;
pageView.frame =
CGRectMake(i*320,0,
320, 460) ; //oneVIew 加入UIScrollView;
[introductionScrollViewaddSubview:pageView];
[pageView
release] ;
}
[pageController
setNumberOfPages:[imgArraycount]];
[self
goPage] ;
}
-(void)goPage{
int page =introductionScrollView.bounds.origin.x/320;
[pageController
setCurrentPage:page] ;
label.text = [[selfgetTextArray]
objectAtIndex:page];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
[self
goPage] ;
if(([imgArray count]-1)*320 == scrollView.bounds.origin.x){ //如果是最后一页,就加上按钮
btn.hidden = NO;
}else{
btn.hidden =YES;
}
}
-(NSArray *)getImgArray{ //图片的名字
return [NSArrayarrayWithObjects:@"01",@"02",nil];
}
-(NSArray *)getTextArray{ // 对应页面的文字,对相应的图片做相应的简介
return [NSArrayarrayWithObjects:@"1234567890",@"1234567890",nil]
;
}
- (IBAction)btnClick:(id)sender {
[self.viewremoveFromSuperview] ;
}
-(void)firstOpened{
NSFileManager *fileManager = [NSFileManagerdefaultManager];
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString *DocumentDirectory = [paths objectAtIndex:0];
[fileManager
changeCurrentDirectoryPath:[DocumentDirectorystringByExpandingTildeInPath]];
[fileManager
removeItemAtPath:@"firstOpenFile"error:nil];
NSString *path = [DocumentDirectory stringByAppendingPathComponent:@"firstOpenFile"];
NSMutableData *writer = [[NSMutableDataalloc]
init];
[writer
appendData:nil];
[writer
writeToFile:path atomically:YES];
[writer
release];
}
-(BOOL)isFirstOpen { //判断文件是否存在
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)
;
NSString *documentsDirectory = [paths objectAtIndex:0] ;
NSString *file = [documentsDirectory stringByAppendingPathComponent:@"firstOpenFile"] ;
if ([[NSFileManagerdefaultManager] fileExistsAtPath:file]) {
return NO ;
}
return YES ;
}
@end
程序第一次启动,在加载rootViewController的viewDidLoad里面判断本地沙盒documentsDirectory是否存在文件firstOpenFile,如果不存在则创建(并且加载另一个viewController介绍程序应用),如果存在程序则正常运行;
在rootViewController的VIewDidLoad函数中,如下
- (void)viewDidLoad {
[superviewDidLoad];
flc = [[FirstLoadControlleralloc]
init]; //flc是全局变量,在dealloc中销毁;
if ([ flc isFirstOpen]) {
[self.view
addSubview: flc .view] ;
[ flc firstOpened] ;
}
}
FirstLoadController.h内容如下:
#import
<UIKit/UIKit.h>
@interface
FirstLoadController : UIViewController<UIScrollViewDelegate>{
NSArray *imgArray ;
}
@property (retain,
nonatomic) IBOutlet UIScrollView *introductionScrollView;
@property (retain,
nonatomic) IBOutlet UIPageControl *pageController;
@property (retain,
nonatomic) IBOutlet UILabel *label;
@property (retain,
nonatomic) NSArray *imgArray ;
@property (retain,
nonatomic) IBOutlet UIButton *btn;
- (NSArray *)getImgArray ;
- (void)goPage;
- (NSArray *)getTextArray ;
- (IBAction)btnClick:(id)sender;
- (BOOL)isFirstOpen;
- (void)firstOpened;
@end
FirstLoadController.m内容如下:
- (void)viewDidLoad {
[superviewDidLoad];
self.imgArray =
[self getImgArray];
introductionScrollView.contentSize = CGSizeMake([imgArray count]*320, 460)
;
introductionScrollView.backgroundColor = [UIColor blackColor];
introductionScrollView.frame = CGRectMake(0, 0, 320, introductionScrollView.frame.size.height)
;
for (int i = 0 ; i < [imgArray
count]; i++) {
UIView *pageView = [[UIViewalloc]
init] ;
UIImage *img = [[UIImagealloc] initWithContentsOfFile:[[NSBundlemainBundle] pathForResource:[imgArrayobjectAtIndex:i] ofType:@"png"]]
;
UIImageView *imgView = [[UIImageViewalloc]
initWithImage:img] ;
[img
release] ;
imgView.frame =
CGRectMake(10,10,200,
200) ; //图片大小,图片位于oneView的位置
[pageView
addSubview:imgView] ;
[imgView
release] ;
pageView.frame =
CGRectMake(i*320,0,
320, 460) ; //oneVIew 加入UIScrollView;
[introductionScrollViewaddSubview:pageView];
[pageView
release] ;
}
[pageController
setNumberOfPages:[imgArraycount]];
[self
goPage] ;
}
-(void)goPage{
int page =introductionScrollView.bounds.origin.x/320;
[pageController
setCurrentPage:page] ;
label.text = [[selfgetTextArray]
objectAtIndex:page];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
[self
goPage] ;
if(([imgArray count]-1)*320 == scrollView.bounds.origin.x){ //如果是最后一页,就加上按钮
btn.hidden = NO;
}else{
btn.hidden =YES;
}
}
-(NSArray *)getImgArray{ //图片的名字
return [NSArrayarrayWithObjects:@"01",@"02",nil];
}
-(NSArray *)getTextArray{ // 对应页面的文字,对相应的图片做相应的简介
return [NSArrayarrayWithObjects:@"1234567890",@"1234567890",nil]
;
}
- (IBAction)btnClick:(id)sender {
[self.viewremoveFromSuperview] ;
}
-(void)firstOpened{
NSFileManager *fileManager = [NSFileManagerdefaultManager];
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString *DocumentDirectory = [paths objectAtIndex:0];
[fileManager
changeCurrentDirectoryPath:[DocumentDirectorystringByExpandingTildeInPath]];
[fileManager
removeItemAtPath:@"firstOpenFile"error:nil];
NSString *path = [DocumentDirectory stringByAppendingPathComponent:@"firstOpenFile"];
NSMutableData *writer = [[NSMutableDataalloc]
init];
[writer
appendData:nil];
[writer
writeToFile:path atomically:YES];
[writer
release];
}
-(BOOL)isFirstOpen { //判断文件是否存在
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)
;
NSString *documentsDirectory = [paths objectAtIndex:0] ;
NSString *file = [documentsDirectory stringByAppendingPathComponent:@"firstOpenFile"] ;
if ([[NSFileManagerdefaultManager] fileExistsAtPath:file]) {
return NO ;
}
return YES ;
}
@end
相关文章推荐
- IOS开发之程序首次启动时加载关于程序应用的简介
- IOS开发之程序首次启动时加载关于程序应用的简介
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发笔记--应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发笔记--应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导 - 疯狂的萝卜 - 博客园
- iOS 开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS-关于应用/视图的生命周期及程序启动原理小结
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发UI篇—程序启动原理和UIApplication
- IOS开发学习-程序启动原理