Stanford iOS10 笔记-L5 Gestures, Multi-MVC

Gestures

本节内容比较简单。前一节介绍了UIView以及如何绘制,本节先讲了如何添加手势操作。苹果抽象了 touch event操作,将他们简化为 Gesture。因此,包含单/多指点击、缩放、旋转和滑动等操作都能使用 UIGestureRecognizer的子类来实现。当然,如果你愿意的话,也可以使用touch event来实现不常见、非常规的手势操作。
Gestures需要添加到 View 上,但是相关的 target 未必是 View 本身——往往是所在的VC。添加gesture的时机一般:

  1. View 是在SB中添加:在 didSet 方法中添加
  2. View 是代码生成的: 那就在生成后添加

而相应action中的操作,需要秉承 MVC 的原则,不要直接去修改 View

容器类 VC

一个项目中往往会有多个 VC,在 MVC 法则下,这些VC都是通过 Controller 联系在一起。为了方便管理VC, iOS中有一类管理 VC 的 VC,即我们熟悉的 UINavigationController, UITabBarController, UISplitViewController。记得iOS的文档中这些VC称作 Container ,因此这里翻译成容器类控制器。 课程中介绍了这几类 VC的 特性,这里不多说了。

Swift

swift特有的语法特性,本节没有涉及。有个需要注意的地方是,变量初始化的时候, didSet 并不会触发;只有在后期有变化时,才会进入 didSet