iOS App 入门与 UIKit 简介|青训营笔记

86 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第5天

iOS App的生命周期

  • main函数是iOS App的入孔

    • 创建应用程序所需的核心对象
    • 读取storyboard文件,来加载用户界面
    • 调用自定义的代码,用来定制应用程序的启动过程
  • UIApplication

    • UIApplication函数会创建一个UIApplication对象,并且为其指定代理对象AppDelegate,由此开启应用程序的生命周期
  • UIApplicationMain

    • 单例模式
    • UIApplication是iOS的应用实例,负责监听应用级事件
    • AppDelegate是应用级事件代理,管理应用程序的生命周期、通知事件、外部调用等事件
  • iOS App的生命周期

    • Not Running:应用程序未启动或者被终止
    • Inactive:应用程序在前台运行,但是不能接收事件(UIEvent)。应用程序在不同状态之间切换时,经常会存在该状态。例如:在App显示启动页时,是从Not Running到Active的过程,中间会存在Inactive状态
    • Active:应用程序在前台运行,可以接收事件
    • Background:应用程序处于后台并且正在执行代码。绝大多数应用程序在进入挂起状态时,会短暂经历这个状态
    • Suspended:应用程序处于后台,并且不能执行代码。此时,当内存不足时,操作系统有可能会自动把挂起状态的应用程序移除,以便给处于Active状态的应用程序提供更多的内存空间

视图

  • Foundation:无关界面,提供基础API

  • UIKit:提供基础的视图类库

  • UIview

    • 是所有视图的根类
    • 只是CALayer的封装
    • UIView处理布局和触摸事件,不直接处理绘图和动画
    • CALayer负责绘图和动画,不处理触摸事件
  • UIViewContriller

    • 所有控制器的基类,负责视图显示、界面跳转
    • init -> loadView -> viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear -> viewWillUnload -> viewDidUnload -> dealloc
    • init中最好不要出现创建view的代码,应当进行数据初始化
    • loadView中适合进行view的创建和初始化
    • viewDidLoad适合创建一些附加view
    • viewWillAppear进行一些显示前的处理 键盘弹出\特殊动画
    • viewDidAppear显示动画后需要的操作
  • Masonry

    • Masonry是一个对系统NSLayoutConstranint进行封装的第三方自动布局框架
  • zPositon

    • 图形变换
    • 视图移动,触摸层不会移动

UI控件

  • UICollectionview
    • Layout
    • DataSource
    • Delegate