作者:肖筱童2502874877 | 来源:互联网 | 2023-09-17 11:04
课程要点:创建一个iOS工程AppDelegate类window的作用在window上添加第一个试图UIView图层关系创建一个iOS工程PS:接下来简单介绍一下工程里的文件与磁盘
课程要点:
- 创建一个iOS工程
- AppDelegate类
- window的作用
- 在window上添加第一个试图UIView
- 图层关系
创建一个iOS工程
PS:接下来简单介绍一下工程里的文件与磁盘里文件的对应关系
AppDelegate类
创建工程过后咱们可以看到系统给咱们创建了很多之前咱们没有接触过的类,但近一段时间咱们只会用到AppDelegate类,其他类以及文件大家目前不需要了解。以后会慢慢的告诉大家。
AppDelegate类在工程里的作用至关重要,因为他管理着软件的整个生命周期(例如这个软件的启动,结束,进入后台,进入前台等等)。每次软件做不同的动作,就会调用AppDelegate.m相应的方法,咱们在这些方法内做咱们想做的操作就行。目前不需要理解AppDelegate里的东西为什么要这样写。只要搞明白怎么用就行。接下来是AppDelegate里相应方法的调用时间。就目前而言咱们常用的第一个- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法。
// AppDelegate里第一个进入系统的函数,应用程序完成初始化后调用。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
return YES;
}
// 即将进入后台
- (void)applicationWillResignActive:(UIApplication *)application
{
// 应用程序即将从活跃状态切换到不活跃状态这个函数(消息)就会被调用。这也会在某些临时状态发生(比如来了电话,SMS短信,这个函数也会被调用)或者 当用户退出了应用程序,它开始切换到后台模式
// 我们应该做什么?用这个方法我们要做暂停正常运行的任务。关闭定时器,降低OpenGL ES的分辨率。暂停游戏。
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
//从应用程序到前台(按Home后)或者锁屏等等
NSLog(@"function %@ is calling",NSStringFromSelector(_cmd));
}
// 已经进入后台
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// 用这个方法来释放共享资源,保存用户数据,作废定时器,保存足够多用户状态信息以便程序被终止,我们下次还能恢复之前的状态信息
// 如果你的应用程序支持后台调用,当用户退出应用程序(按Home键等)时这个方法就会被调用而不调用applicationWillTerminate消息
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
NSLog(@"function %@ is calling",NSStringFromSelector(_cmd));
}
// 即将切换到活跃状态(前台)
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// 如果从背景模式切换到不活跃状态(前台)时这个函数会被调用。在这里可以做一些和之前进入后台相反的操作。恢复之前进入后台保存的状态
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
NSLog(@"function %@ is calling",NSStringFromSelector(_cmd));
}
// 已经进入活跃状态(前台)
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// 重新启动被暂停的任务。如果应用程序在后台,那么这里要刷新用户界面(UI)
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
NSLog(@"function %@ is calling",NSStringFromSelector(_cmd));
}
//终止调用函数(ios4.0不支持多任务,按Home键会调用这个函数杀死应用程序;ios4.0后按Home键将挂起应用程序这个函数就不会调用,若想调用就必须在plist给Application does not run in background键赋值TRUE)
- (void)applicationWillTerminate:(UIApplication *)application
{
// 当应用程序停止时会调用这个函数,在适当情况下保存数据。这个函数只有在4.0设置了不能后台模式时
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
NSLog(@"function %@ is calling",NSStringFromSelector(_cmd));
}
window的作用
window在软件内的作用相当于一个平台或者载体,他承载着软件内所有的试图,