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

来源:互联网 发布:centos中文输入法 编辑:程序博客网 时间:2024/05/19 17:02

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

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


在rootViewController的VIewDidLoad函数中,如下

- (void)viewDidLoad {

    [superviewDidLoad];

    flc = [[FirstLoadControllerallocinit];       //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 (retainnonatomicIBOutlet UIScrollView *introductionScrollView;

@property (retainnonatomicIBOutlet UIPageControl *pageController;

@property (retainnonatomicIBOutlet UILabel *label;

@property (retainnonatomicNSArray *imgArray ;

@property (retainnonatomicIBOutlet 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 < [imgArray count]; i++) {

        UIView *pageView = [[UIViewallocinit] ;


        UIImage *img = [[UIImagealloc]  initWithContentsOfFile:[[NSBundlemainBundlepathForResource:[imgArrayobjectAtIndex:i] ofType:@"png"]] ;

        UIImageView *imgView = [[UIImageViewallocinitWithImage:img] ;

        [img release] ;

        

        imgView.frame = CGRectMake(10,10,200200) ;  //图片大小,图片位于oneView的位置

        [pageView addSubview:imgView] ;

        [imgView release] ;


        pageView.frame = CGRectMake(i*320,0320460) ;    //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 = [[selfgetTextArrayobjectAtIndex: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 = [[NSMutableDataallocinit];

    [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

原创粉丝点击