iOS. Приемы программирования
Шрифт:
Функция CGRectMake
• x — положение начала координат прямоугольника по оси X относительно графического контекста. В iOS это значение соответствует количеству точек, отсчитанному вправо от левой стороны прямоугольника;
• y — положение начала координат прямоугольника по оси Y относительно графического контекста. В iOS это значение соответствует количеству точек, отсчитанному вниз от верхней стороны прямоугольника;
• width — ширина прямоугольника в точках;
• height — высота прямоугольника в точках.
Результат выполнения кода показан на рис. 17.8.
Рис. 17.8. Отрисовка строки в прямоугольном пространстве
UIColor — это, в сущности, предоставляемая в UIKit оболочка для класса CGColor из фреймворка Core Graphics. Переходя к довольно низкоуровневому программированию — то есть на уровне Core Graphics, — мы неожиданно обретаем значительно более полный контроль над использованием цветовых объектов и даже можем определить цветовые компоненты, из которых состоит конкретный оттенок. Допустим, в каком-то другом коде вы получили объект типа UIColor и хотите определить, каковы содержащиеся в нем доли компонентов red, green, blue и alpha. Чтобы получить компоненты, из которых состоит объект UIColor, выполните следующие шаги.
1. Используйте метод экземпляра CGColor, относящийся к классу UIColor. В результате вы получите цветовой объект типа CGColorRef, представляющий собой ссылку на цветовой объект (Color Reference) — объект из фреймворка Core Graphics.
2. Применяйте функцию CGColorGetComponents для получения компонентов, составляющих цветовой объект.
3. При необходимости пользуйтесь функцией CGColorGetNumberOfComponents, чтобы определить количество компонентов, примененных для создания данного оттенка (красный + зеленый и т. д.).
Вот пример:
После
См. также
Раздел 17.1.
17.4. Отрисовка изображений
Постановка задачи
Требуется возможность отрисовывать изображения на экране устройства с iOS.
Решение
Используйте класс UIImage для загрузки изображения и относящийся к изображению метод drawInRect: для отрисовки картинки в графическом контексте.
Обсуждение
Фреймворк UIKit очень упрощает задачи, связанные с рисованием. Все, что от вас требуется, — загрузить ваши изображения в экземпляры типа UIImage. В классе UIImage содержатся разнообразные методы класса и экземпляра, предназначенные для загрузки изображений. Вот некоторые из наиболее важных:
• imageNamed: (метод класса) — загружает изображение (если его удалось правильно загрузить, то и кэширует). Параметр этого метода — имя изображения в пакете, например Tree Texture.png;
• imageWithData: (метод класса) — загружает изображение из данных, инкапсулированных в экземпляре объекта NSData, который был передан данному методу в качестве параметра;
• initWithContentsOfFile: (метод экземпляра (для инициализации)) — использует указанный параметр как путь к изображению, которое должно быть загружено. Применяется для инициализации объекта изображения;
В данном случае подразумевается полный путь, указывающий на изображение в пакете приложения.
• initWithData: (метод экземпляра (для инициализации)) — использует полученный параметр типа NSData для инициализации изображения. Эти данные должны относиться к валидному изображению.
Чтобы добавить изображение в ваш проект в Xcode, выполните следующие шаги.
1. Найдите, где именно расположено изображение на вашем компьютере.
2. Перетащите это изображение в категорию изображений, которая обычно называется images.xcassets. Всю остальную работу Xcode выполнит за вас.