我真的不是越来越懒了,是最近在配环境所以写这个文档写的就少了啦
先写一点自己的总结吧
任何一个ViewController都有一个view
view可以设置frame等属性
UILabel是文字的View、UIImageView是图片的View、UITableView是表格的View、UICollectionView是瀑布流的View等等
layout是用来分布view的,多线程采用dispatch队列,序列化数据等…
APP启动
main函数前:动态链接/二进制文件加载/runtime/类的家在等
main函数创建一个UIApplication对象,创建对应的AppDelegate
UIApplication
- App生命周期、内存警告
- 处理UI/statusbar/图标消息数等变化
- 处理openURL
具有两种方式处理业务逻辑Delegate和Notification
根据App状态可以调整业务逻辑
- Not running
- Inactive:过渡的中间状态
- Active:正在前台运行,消耗更多资源
- Background:分配较少资源
- Suspended:内存不足系统自动kill
UIApplicationDelegate
App启动:willFinishLanunchingWithOptions:
APP启动完成:didFinishLaunchingWithOptions:
App启动:applicationDidBecomeActive:
APP后台切前台:applicationWillEnterForeground:
applicationDidBecomeActive:
APP前台切后台:applicationWillResignActive:
applicationDidEnterBackground:
Kill App:applicationWillTerminate:
闪屏的实现
启动前图片的组成
- Launch Screen + Splash Screen
Launch Screen启动屏(系统级)
- main函数之前 + didFinishLaunch前
- 系统启动App时自动展示
- 在准备好App UI数据后自动消失
- 给用户以响应,确定点击了正确的图标
Splash Screen 闪屏(业务逻辑)
- Launch Screen展示时间短
- 实现同样的图片,显示图标等信息
- 实现广告/推广活动页面
- 游戏中的Loading页面
0 条评论