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]*320, 460) ;
introductionScrollView.backgroundColor = [UIColor blackColor];
introductionScrollView.frame = CGRectMake(0, 0, 320, introductionScrollView.frame.size.height) ;
for (int i = 0 ; i < [imgArraycount]; 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] ;
}
[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.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];
[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
- IOS开发之程序首次启动时加载关于程序应用的简介
- IOS开发之程序首次启动时加载关于程序应用的简介
- IOS开发(二)之程序首次启动时加载关于程序应用的简介
- IOS开发之程序首次启动时加载关于程序应用的简介
- iOS 开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导
- iOS开发之应用首次启动显示用户引导 - 疯狂的萝卜 - 博客园
- iOS开发之UIWindow,iOS程序启动
- 判断程序首次启动
- 【iOS开发】iOS程序启动的过程
- 十七周任务一:二进制读文件
- 分库分表总结
- 如何配置sshd的配置文件sshd_config
- BOOL和bool的区别
- hdu 1311 Relative Relatives
- IOS开发之程序首次启动时加载关于程序应用的简介
- 播放器界面20120613
- iPhone开发之CoreLocation定位功能(6)
- WordCloud基本算法
- 请让你的父亲知道自己的子女已经长大了!
- 每个程序员都应该阅读的书籍
- metasploit-学习3---自动运行metasploit
- js获取DIV的位置坐标的三种方法!
- 电信版行货黑莓9630修复历险记