标签:ios开发 界面启动
来源:互联网 发布:linux shell 函数 编辑:程序博客网 时间:2024/06/05 02:12
标签:ios开发 界面启动
APP下载安装第一次使用一般会显示一个首次启动引导界面然后进入主界面,非首次开启APP也通常会显示一个启动界面然后进入主界面。
1、本例首次启动显示FirstUseViewController,添加一个button,点击进入LaunchViewController
2、非首次LaunchViewController,显示2s后进入主界面ViewController
3、主界面ViewController
4、不深究细节,一般启动引导都会有动画,图片之类的,非本次练习重点,所以没有设置,只有简单地标志作界面区分
(效果图在文末)
FirstUseViewController.m
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor greenColor]; UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; button.center = self.view.center; [button setTitle:@"Welcome" forState:UIControlStateNormal]; [button addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];}//点击button切换到下一个界面- (void)btnAction:(UIButton *)btn { LaunchViewController *vc = [[LaunchViewController alloc] init]; self.view.window.rootViewController = vc;}
LaunchViewController.m
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor blueColor]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 50)]; label.center = self.view.center; [label setFont:[UIFont systemFontOfSize:30]]; label.text = @"启动页面"; [self.view addSubview:label];// 延迟2s调用,一般启动页面会停留,或者有些动画什么的,本例只简述思路,不深究细节 [self performSelector:@selector(changeView) withObject:self afterDelay:2]; // Do any additional setup after loading the view.}//切换到下一个界面- (void)changeView { UIWindow *window = self.view.window; ViewController *main = [[ViewController alloc] init]; //添加一个缩放效果 main.view.transform = CGAffineTransformMakeScale(0.2, 0.2); [UIView animateWithDuration:0.1 animations:^{ main.view.transform = CGAffineTransformIdentity; }]; window.rootViewController = main;}
ViewController.m
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor grayColor]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 50)]; label.center = self.view.center; [label setFont:[UIFont systemFontOfSize:30]]; label.text = @"主界面"; [self.view addSubview:label];}
AppDelegate.m设置,两种方法。个人觉得第二种利用NSUserDefaults实现更方便
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible];//// 利用文件操作判断是否为第一次使用此APP// NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/firstUse.plist"]; //第一次启动,没有此文件,会自动创建// NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:filePath];// // BOOL notFirstUse = YES;// notFirstUse = [dic[@"notFirstUse"] boolValue];// if (!notFirstUse) {// NSDictionary *dic = @{@"notFirstUse" : @YES };// [dic writeToFile:filePath atomically:YES];// FirstUseViewController *vc = [[FirstUseViewController alloc] init];// self.window.rootViewController = vc;// }else {// LaunchViewController *vc = [[LaunchViewController alloc] init];// self.window.rootViewController = vc;// }//// 利用NSUserDefaults实现 if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) { [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"]; NSLog(@"首次启动"); FirstUseViewController *vc = [[FirstUseViewController alloc] init]; self.window.rootViewController = vc; }else { NSLog(@"非首次启动"); LaunchViewController *vc = [[LaunchViewController alloc] init]; self.window.rootViewController = vc; } return YES;}
0 0
- 标签:ios开发 界面启动
- iOS开发小点之启动广告界面
- APP首次启动引导界面和启动界面设置——iOS开发
- APP首次启动引导界面和启动界面设置——iOS开发
- IOS之启动界面
- iOS自定义启动界面
- iOS自定义启动界面
- iOS自定义启动界面
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- iOS开发- 启动动画(动态欢迎界面,非静态Default)
- 高仿微博--启动页面
- jQuery val和text赋值无效
- 通过pt-query-digest分析收集MySQL慢查询日志到指定位置
- Xcode 警告、错误,解决方法总结
- MySQL性能优化的最佳21条经验
- 标签:ios开发 界面启动
- mjpg-streamer 移植到OK6410,从摄像头采集视频直播
- iOS 调试问题记录(三)
- 浅谈tcp_nodelay的作用
- 2015-5-13-1
- libpng warning: iCCP: Not recognizing known sRGB profile that has been edited 错误解决
- jquery 的滚动条插件 jquery.nicescroll.js
- 24行代码,让你的网页元素任意放大、缩小、拖拽、移动
- sparkStreaming