您的位置:首页 > 移动开发 > IOS开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: