Лекция 4 полностью посвящена Views. Views — это прямоугольные области на экране, в которых мы рисуем и получаем от пользователя так называемые “жесты прикосновения” (touch gestures), как одинарные, так и множественные. Но на Лекции 4 ведется разговор только о рисовании, управление жестами перенесено в Лекцию 5. Никогда раньше в своих курсах Пол Хэгарти не уделял столько внимания рисованию Views. Возможно, это связано с тем, что компактность кода и богатство синтаксических конструкций Swift позволяют представить рисование как увлекательный и очень интеллектуальный процесс.
В теоретической части рассматривается иерархичность Views, superview, subviews и связанные с ними системы координат, способы инициализации Views в зависимости от того, где они создаются: в коде или на storyboard, «ранняя» установка некоторых свойств в методе awakeFromNib.
Views используют специальные структуры данных для рисования: точка CGPoint, размер CGSize и прямоугольник CGRect, а также множество удобных методов для работы с ними. Дается четкое различие между frame и bounds. Вводится понятие единицы измерения points с различным числом пикселей в зависимости от используемого прибора и соответствующее свойство contentScaleFactor.
Представлена подробная концепция рисование в draw (CGRect) с использованием Core Graphics и UIBezierPath. Рассказывается обо всем: рисование фигур, «вырезание» по UIBezierPath траектории с использованием addClip(), управление цветами с помощью класса UIColor, управление прозрачностью с помощью значения alpha, «cкрытие» view, не убирая его из иерархии.
Рассматриваются трудности использования класса NSAttributedString в Swift для «рисования» текстов в drawRect. Правильное использование фонтов preferredFontForTextStyle для пользовательского контента увеличивает привлекательность вашего приложения. На основе режима «перерисовки» сontentMode определяется, что будет происходить при изменении границ bounds вашего view. Дается представление о кривых Безье и показано их использование для построения сложных траекторий.
В конце лекции профессор представляет демонстрационный пример FaceIt не просто как иллюстрацию теоретических частей лекции, а как возможность показать простоту рисования с использования UIBezierPath в Swift. Ни одна строчка кода не остается без подробных объяснений профессора.
В заключение Лекции 4 показано, как с помощью атрибутов @IBDesignable и @IBInspectable можно получать и настраивать пользовательские изображения непосредственно на storyboard. Как заставить пользовательский UIView «переписываться» при изменении его public параметров.
Лекция 4 и слайды на английском языке находятся на iTunes название “4. Views.« Код демонстрационного примера «FaceIt L4» доступен как на iTunes название “Lecture 4 Demo Code: FaceIt.«, так и на Github.
Русскоязычный неавторизованный конспект лекции 4, хронометрированный через каждые 5 минут, и представленный в виде PDF-файла, который можно скачать и использовать offline, а также Google Doc доступны на платной основе.
Оплатил, жду доступ к материалам в течении 24 часов?)
Спасибо
Вам высланы все необходимые приглашения на указанную вами почту.