Оглавление:
- Просмотр геометрии и систем координат
- Точки против пикселей
- Размер и положение представления
- Работа с структурами данных
Видео: ? ТОП программ для создания мультфильмов и анимации 2025
К счастью, большая часть того, что вам нужно сделать в отношении iOS-анимации, уже встроена в структуру. Некоторые свойства представления могут быть анимированы, а это означает, что вам просто нужно указать представление, с которого начать и где завершить его перемещение, и несколько других необязательных параметров, и все готово. Само представление (в базовом классе UIVIew) имеет функциональные возможности для анимирования перемещения.
Чтобы дать вам некоторый контекст, чтобы понять, как работает анимация на iPhone и iPad, вам нужно понять, что происходит под капотом, когда инфраструктура заботится о анимационных задачах для вас. Более конкретно, вам нужно немного углубиться в представления, их свойства и системы координат на iPad.
Просмотр геометрии и систем координат
Система координат по умолчанию в UIKit помещает свое начало в верхний левый угол и имеет оси, которые простираются вниз и направо от точки начала. Значения координат представлены с использованием чисел с плавающей запятой, и вам не нужно беспокоиться о разрешении экрана; рамки автоматически позаботятся об этом.
В дополнение к системе координат экрана представления определяют свои собственные локальные системы координат, которые позволяют вам указывать координаты относительно представления, а не по отношению к экрану. На практике вы часто делаете оба в зависимости от того, что вы пытаетесь сделать.
Поскольку каждый вид и окно определяет собственную локальную систему координат, всякий раз, когда вы рисуете или занимаетесь координатами, вам нужно обратить внимание на то, какую систему координат вы используете. Это звучит зловеще, но на самом деле это не так уж важно, когда вы входите в ритм работы с системами координат.
Точки против пикселей
Хорошо, так где же появляется дисплей Retina с высоким разрешением?
Все значения координат и расстояния указаны с использованием значений с плавающей запятой в единицах, называемых точками . Главное, чтобы понять о точках, - это то, что они обеспечивают фиксированную систему отсчета для рисования. Эта фиксированная система отсчета основана на том, что точка равна 1/72 дюйма. (Это было установлено для оригинального Macintosh и LaserWriter. Точка - общепринятая единица длины.)
У оригинального Macintosh было разрешение экрана 72 пикселя на дюйм (PPI). Это означало, что точки и пиксели были идентичны. Однако со временем технологии продвинулись, и теперь размер и плотность пикселей (PPI) изменились. Больше у большинства устройств нет 72 PPI, но поскольку пиксели и точки используются взаимозаменяемо, появление дисплеев с высокой плотностью, таких как дисплей Retina, вызвало путаницу.
Когда вы говорите о размере или местоположении, вы, вероятно, говорите в очках. Если вы говорите о разрешении изображения, которое вы разместите на объекте с определенным размером или местоположением, вы, вероятно, говорите в пикселях. На дисплее Retina ваше изображение будет иметь два пикселя, которые у вас есть на дисплее, отличном от Retina, и вы, вероятно, используете отдельный. png-файл.
Учитывайте это различие, особенно если вы смотрите на старую (до 2013 года) документацию. Вы должны разобраться, когда «пиксель» означает пиксель, а когда он означает точку. Некоторые разработчики используют как основное правило: «Xcode = points и Photoshop = пиксели. «Это обобщение, и во всех случаях это неверно, но, как говорят обобщения, это вообще правильно.
Размер и положение представления
Расположение объекта представления в системе координат определяется с использованием его фрейма или его свойства центра:
-
Свойство frame содержит прямоугольник рамки, который определяет размер и расположение представления в своей системе координат .
-
Свойство центра содержит известную центральную точку вида в своей системе координат супервизора.
В ваших странствиях вы можете когда-нибудь столкнуться с свойством bounds. Он связан с прямоугольником границ, который определяет размер представления (и его содержимого) в собственной локальной системе координат представления .
Координаты представления, которые вы установили для местоположения вашего представления в Interface Builder, находятся в точках. Координаты начинаются с 0, 0 в левом верхнем углу и увеличиваются по мере продвижения вниз и вправо. Обычно вы размещаете объекты под полосой состояния 20 пунктов, но с iOS 7 представления могут отображаться с помощью навигации или панели инструментов, поэтому вы можете поместить их еще ниже, если вы не хотите, чтобы они показывались.
Работа с структурами данных
Помимо знания того, что происходит, вам нужно понять, как влияют структуры данных на работу с представлениями.
Кадр - это CGRect - структура (тип языка C, которая объединяет концептуально связанные переменные в один тип) с источником и размером, который состоит из CGPoints. CG здесь означает Core Graphics, одну из фреймворков, включенных в Xcode, когда вы выбрали шаблон приложения Single-View. Следующий код показывает структуру CGRect:
struct CGRect {CGPoint origin; Размер CGSize;};
Происхождение - это CGPoint с величиной x и y, а CGSize - это CGPoint с значением ширины и высоты. Следующий код показывает структуру CGPoint:
struct CGPoint {CGFloat x; CGFloat y;}; struct CGSize {CGFloat width; CGFloat height;};
Аналогичным образом, свойство center является CGPoint. И это все, что вам нужно знать о структурах данных, которые вы будете использовать.