我们在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