这是我参与「第四届青训营 」笔记创作活动的第13天
本篇文章将会记录“iOS App入门与UIKit简介”一课中的重点知识以及笔记
iOS App简介
入口函数 main
main函数中会初始化一个UIApplication实例以及一个AppDelegate代理
AppDelegate
该对象在App退出前不会被释放, 并在App启动时就不断追踪程序的变化(应用启动、跳转、退居后台)
其功能如下
- 启动时初始化App的代码
- 追踪生命周期的状态, 并调用指定的方法
- 推送通知
- 处理低内存
- 处理App的状态保存和恢复
- 存储App数据
App生命周期
App的生命周期包涵五种状态:
- Not Running
- Inactive
- Active
- Background
- Suspended
状态(生命周期跳转)变化AppDelegate所相应的回调方法(常用)
- application:willFinishLaunchingWithOptions: 启动时调用, 表示加载进程开始, 处理应用状态的存储和恢复
- application:didFinishLaunchingWithOptions: 从Not Running进入Inactive状态, 初始化操作
- applicationDidBecomeActive: 进入Active状态, 应用进入前台运行
- applicationWillResignActive: 从前台退出时候调用
- applicationDidEnterBackground: 进入后台调用(Background)
- applicationWillEnterForeground: 重新进入前台(还未Active)
- applicationWillTerminate: 应用终止
其中尤其注意applicationWillTerminate, 该方法常用作保存数据和退出前的清理工作, 最长运行时间为5秒, 超过时间将会被系统清除并回收内存
UIKit简介
Apple为用户提供UI方面编程的类
视图
iOS中所有的视图(UIView)都是以(UIView类)作为基类衍生的
UIView可以处理触摸事件, 绘图、仿射变换、滑动、渐变动画等
图层:
CALayer(图层)不处理用户交互, 负责管理图层方面的的效果, 动画变换等
常用作:
- 影音、圆角、边框
- 3D变换
- 非矩形范围
- 透明遮罩
- 多级非线性动画
常用控件
TextField、TextView 输入框
DatePicker 日期选择器
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy.MM.dd";
NSString *str = [formatter stringFromDate:date];