Лекция 11 CS193P Winter 2015 — Unwind Segues, Alerts, Timers, View Animation

https://www.youtube.com/watch?v=m63jMyEgmgU

Лекция 11 — чисто теоретическая и начинается она с детального обсуждения финального проекта, который должны разработать студенты Стэнфорда. Обсуждение финального проекта длится почти 30 минут и представляет интерес, наверно, только для студентов Стэнфорда.

Unwind Segue

Это единственный segue, который  в процессе “переезда” не создает новый экземпляр MVC. Этот тип segue очень хорошо подходит для того, чтобы возвращаться назад к любой карте из стэка в Navigation Controller.

Другой случай использования unwind segue связан с MVC, который был представлен модально. Для этого случая  unwind segue подходит как нельзя лучше, потому что альтернативой ему является только делегирование. Однако использование unwind segue в этом случае многократно легче делегирования.

В лекции подробно рассматриваются особенности применения этого segue.

Alerts and Action Sheets

В iOS существуют два типа механизмов, которые позволяют с помощью “всплывающего окошка” что-то спросить у пользователя. Один называется Alert  (сигнал тревоги), а другой — Action Sheet (список действий).

Они используют один и тот же API. Имеется некоторая разница между этими двумя механизмами. Наиболее легкий способ увидеть разницу между Alert и Action Sheet — это посмотреть пример. В качестве такого примера Пол Хэгерти взял уже знакомое нам приложение Cassini и на нем продемонстрировал все возможности Alert и Action Sheet. Особое внимание уделяется появлению Action Sheet в Popover «окошке» как на iPhone, так и на iPad.

NSTimer

Таймеры используются для однократного запуска метода в будущем или для  периодического запуска метода, при этом точность «реального времени» не гарантируется. Пол Хэгерти рассматривает случаи, где можно применять таймеры, а где нет.

UIView Animation

В течение последних 10 минут лекции дается небольшое введение в анимацию. Рассказывается о 4-х типах анимации, которые можно делать в iOS.

Одним из видов анимации является анимация свойств View : frametransform (translation — перемещение, rotation — вращение и scale — масштабирование) и alpha. Этот тип анимации подробно рассматривается на этой лекции. Иногда вам хочется изменить целиком весь View, и вы также можете это сделать с помощью метода класса UIView с именем transitionWithView . В этом случае вы не ограничены такими специфическими свойствами, как alpha, frame и transform. Вы можете переворачивать Views, “растворять” одно в другом, заворачивать вверх /вниз. Все это делается с помощью методов класса  UIView и замыканий.

Другой вид анимации — это Dynamic animation (динамическая анимация), основанная на “физических” свойствах анимируемых объектов. Этому виду анимации будет полностью посвящена следующая лекция.

Лекция и слайды на английском языке находятся на  iTunes название “11. Unwind Segues, Alerts, Timers, View Animation.”.

Русский неавторизованный конспект лекции , хронометрированный через каждые 5 минут, представлен в PDF — файле бесплатно. 

Лекция 11 CS193P Winter 2015 iOS 8 .pdf

В конце Лекции 11 профессор лишь вскользь упоминает, что Графический калькулятор, разработанный в Задании 3, можно использовать для демонстрации анимации Views. Мною внесены небольшие изменения в калькулятор, представленный в посте «Замыкания вместо делегирования в iOS 8»Этот калькулятор накапливает «любимые» графики в NSUserDefaults. Список «любимых» графиков можно посмотреть в Popover «окошке», которое открывается при нажатии кнопки «Show favorites«. Прежде, чем поместить график в список «любимых» с помощью кнопки «Add to favorite«, нужно набрать его на клавиатуре калькулятора слева, используя «M» как независимую переменную.

Изменения связаны с добавлением кнопки «Play» в правой части верхней панели рядом с  кнопкой «Show favorites»
Screen Shot 2015-06-20 at 11.12.42 PM
Добавление кнопки выполнено в коде
Screen Shot 2015-06-20 at 11.29.04 PM
При нажатии кнопки «Play» выполняется анимация при выборе случайного графика и случайной опции для анимации

Screen Shot 2015-06-20 at 11.36.46 PM
Код находится в Github.

В видео в начале этого поста используется режим «Slow Animation»

Screen Shot 2015-06-20 at 11.39.44 PM
Примечание. Если будете экспериментировать с Графическим калькулятором, то помните, что это RPN калькулятор, поэтому сначала вводятся операнды, а потом операция. Чтобы получить функцию sin (1/M) нужно ввести на калькуляторе следующую последовательность символов
1 M ÷ sin кнопка «График» дает sin (1/M)
M cos M × кнопка «График» дает cos(M)*M
M 1M sin + × кнопка «График» дает M * ( 1 +sin (M))

Лекция 11 CS193P Winter 2015 — Unwind Segues, Alerts, Timers, View Animation: 3 комментария

Обсуждение закрыто.