Лекция 14 посвящена двум темам.
Одна тема- продолжение анимации Dynamic Animation, теоретическая часть которой была представлена в виде слайдов на прошлой лекции. На Лекции 14 показывается большой демонстрационный пример Dropit, в котором вы увидите движок Dynamic Animation в действии при проектировании игры, похожей на Tetris. Ваше Домашнее Задание № 6 полностью посвящено Dynamic Animation, так что Лекция 14 является своего рода подготовкой к Заданию 6.
В демонстрационном примере показан целый спектр «поведений»: “присоединения” UIAttachmentBehavior, столкновения UICollisionBehavior, гравитации UIGravityBehavior и мета-поведения UIDynamicItemBehavior, а также как объединить все эти «поведения» в составное сложное «поведение», которое является subclass UIDynamicBehavior. Демонстрируется обнаружение состояния статического равновесия в системе динамической анимации с помощью делегата. По ходу дела, как всегда, Пол Хэгерти демонстрирует синтаксические конструкции Swift в действии: lazy vars, пара Наблюдателей свойств willSet{} и didSet{}, инициализация с помощью выполняемых замыканий, разрыв циклических ссылок в памяти с помощью списка захвата [ unowned self ] в замыканиях и когда такой способ разрыва является безопасным.
Вторая тема — CoreMotion. Это объектно-ориентированное API для доступа к первичным датчикам движения на вашем устройстве. Core Motion поставляет в приложение данные первичных датчиков Apple приборов: акселерометра (accelerometer), гироскопа (gyro) и магнитометра (magnetometer).