IOS开发之程序首次启动时加载关于程序应用的简介

来源:互联网 发布:淘宝优惠券不公开设置 编辑:程序博客网 时间:2024/06/11 00:56

我们在IOS应用中很多时候会看到关于第一次应用程序时候会有一个scrollview介绍程序如何使用,这个介绍怎么做呢,下面是我的思路;

程序第一次启动,在加载rootViewController的viewDidLoad里面判断本地沙盒documentsDirectory是否存在文件firstOpenFile,如果不存在则创建(并且加载另一个viewController介绍程序应用),如果存在程序则正常运行;


在rootViewController的VIewDidLoad函数中,如下

- (void)viewDidLoad {

    [superviewDidLoad];

   flc = [[FirstLoadControlleralloc]init];       //flc是全局变量,在dealloc中销毁;

    if ([ flc  isFirstOpen]) {

        [self.viewaddSubview: flc .view] ;

        [ flc firstOpened] ;

    }

}


FirstLoadController.h内容如下:

#import<UIKit/UIKit.h>

@interfaceFirstLoadController : 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]*320460) ;

    introductionScrollView.backgroundColor = [UIColor blackColor];

    introductionScrollView.frame = CGRectMake(00320introductionScrollView.frame.size.height) ;


    for (int i = 0 ; i < [imgArraycount]; i++) {

        UIView *pageView = [[UIViewalloc]init] ;


        UIImage *img = [[UIImagealloc]  initWithContentsOfFile:[[NSBundlemainBundlepathForResource:[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] ;

    }


    [pageControllersetNumberOfPages:[imgArraycount]];

    [selfgoPage] ;

}


-(void)goPage{

   int page =introductionScrollView.bounds.origin.x/320;

    [pageControllersetCurrentPage:page] ;

    label.text = [[selfgetTextArray]objectAtIndex:page];

}


-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    [selfgoPage] ;

    if(([imgArray count]-1)*320 == scrollView.bounds.origin.x){ //如果是最后一页,就加上按钮

        btn.hiddenNO;

    }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];  

    [fileManagerchangeCurrentDirectoryPath:[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


原创粉丝点击