Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Каталог пользовательского интерфейса UIKit

PDF
На этой странице

Представления изображения

Представление изображения выводит на экран изображение или анимированную последовательность изображений. Представление изображения позволяет Вам эффективно нарисовать изображение (такое как JPEG или файл PNG) или мультсериал изображений на экране, масштабируя изображения автоматически для адаптации в текущем размере представления. Представления изображения могут дополнительно вывести на экран различное изображение или серию изображений каждый раз, когда выделяется представление. Представления изображения поддерживают те же форматы файлов как UIImage класс — TIFF, JPEG, PNG, битовый массив Windows (bmp), значок Windows (ico), курсор Windows (злая собака) и битовый массив X-оконной системы (xbm) форматы.

image: ../Art/uiimageview_image_2x.png

Цель. Представления изображения позволяют пользователям:

  • Представление отображает в приложении

Реализация. Представления изображения реализованы в UIImageView класс и обсудил в Ссылке класса UIImageView.

Конфигурация. Сконфигурируйте представления изображения в Интерфейсном Разработчике в разделе Image View Инспектора Атрибутов. Несколько конфигураций не могут быть сделаны через Инспектора Атрибутов, таким образом, необходимо сделать их программно. Также, если Вы предпочитаете, можно установить другие конфигурации программно.

image: ../Art/uiimageview_attributes_inspector_plain_2x.png

Содержание представлений изображения

Представления изображения обеспечивают значительную программируемую настройку путем изменения свойств на объектах представления и свойств на любом объекте изображения, который Вы загрузили в представление.

При отображении единственного изображения большинство представлений изображения требует минимальной конфигурации вне установки изображения. При отображении мультсериала изображений необходимо также сконфигурировать настройки анимации.

image: ../Art/uiimageview_attributes_inspector_group-images.pdf

При первом использовании объекта представления изображения вывести на экран единственное изображение можно выбрать изображение для отображения использования Изображения (image) поле в Инспекторе Атрибутов. Если бы Вы не выбирали изображение в Инспекторе Атрибутов, то необходимо установить начальное изображение путем вызова initWithImage: или путем установки image свойство к a UIImage объект, описывающий изображение, которое Вы хотите вывести на экран.

Если Вы хотите показать различное изображение, когда представление выделяется, можно указать эту информацию в Выделенном (highlightedImage) поле. Также любой вызов initWithImage:highlightedImage: когда Вы инициализируете изображение или устанавливаете highlightedImage свойство к альтернативному изображению.

Если Вы хотите, чтобы Ваше представление изображения вывело на экран анимированную последовательность изображений, необходимо сделать это программно. Поскольку Вы не можете указать массив изображений в Инспекторе Атрибутов, необходимо записать некоторый код для сообщения представления изображения, отображающего для использования. Чтобы сделать это, установите animationImages свойство к массиву UIImage объекты в порядке, в котором они должны быть показаны. Дополнительно установите highlightedAnimationImages свойство, если Вы хотите показать различную анимацию, в то время как выделяется представление.

Поведение представлений изображения

Используйте выделенный (highlighted) флажок, чтобы указать, должно ли представление показать стандартную или выделенную последовательность изображений или последовательность изображений.

image: ../Art/uiimageview_attributes_inspector_group-behavior.pdf

В любое время можно изменить состояние представления изображения.

При использовании последовательности изображений можно вместо этого сконфигурировать поведение анимации программно:

  • Установите animationDuration к желаемому периоду анимации (в секундах). По умолчанию это свойство вычислено на основе числа изображений в 30 кадрах в секунду.

  • Установите animationRepeatCount ограничить число итераций через набор изображений. По умолчанию это свойство имеет значение нуля, что означает, что анимация повторяется навсегда.

Вы запускаете анимацию путем вызова startAnimating.

Появление представлений изображения

Вы не можете настроить появление представления изображения непосредственно. Однако можно определить, как изображения появляются в представлении путем установки свойств в UIImage и UIView уровни.

Режим содержания

Представление contentMode свойство указывает, как изображение должно масштабироваться и выравниваться в представлении. Это рекомендуется (но не требуется), что Вы используете изображения, которые являются всеми одинаковыми размер. Если изображения будут различными размерами, то каждый будет скорректирован для адаптации отдельно на основе этого режима.

Изображения

Изображение capInsets, leftCapWidth, и topCapHeight свойства указывают ширину и высоту центральной части изображения, которое должно масштабироваться по-другому, чем пограничные зоны (вне той центральной части). Верхние и нижние пограничные зоны размещаются рядом горизонтально. Левые и правые пограничные зоны размещаются рядом вертикально. Углы выведены на экран как есть. Кроме того, изображение alignmentRectInsets свойство указывает части изображения для игнорирования в целях выравнивания (таких как тень и эффекты свечения).

Можно создать изображения для представлений изображений многими способами, включая:

Эти методы не могут быть установлены после того, как изображение создается или загружается.

Прозрачность и альфа-смешивание

Прозрачность представления изображения определяется свойствами и основного изображения и представления следующим образом:

  • Если Непрозрачное представление (opaque) флаг установлен, изображение является альфой, смешанной с цветом фона представления, и само представление непрозрачно. Альфа представления (alpha) установка проигнорирована.

  • Если Непрозрачное представление (opaque) флаг не установлен, альфа-канал для каждого пикселя (или 1.0 если изображение не имеет никакого альфа-канала), умножается на Альфу представления (alpha) установка и получающееся значение определяют прозрачность для того пикселя.

Используя автоматическое расположение с представлениями изображения

Можно создать Автоматические Ограничения макета между представлением изображения и другими элементами пользовательского интерфейса. Можно создать любой тип ограничения для представления изображения помимо ограничения базовой линии.

Вы обычно хотите, чтобы представление изображения заполнило полную ширину Вашего экрана. Чтобы гарантировать, что это происходит правильно на всех устройствах и ориентациях, можно создать Ведущее Пространство для Суперпросматривания и Конечный пробел, чтобы Суперпросмотреть ограничения и установить оба значения, равные 0. Это гарантирует, что представление изображения остается прикрепленным к краям экрана устройства.

Для получения общей информации об использовании Автоматического Расположения с представлениями iOS, посмотрите Используя Автоматическое Расположение с Представлениями.

Создание доступных представлений изображения

Представления изображения доступны по умолчанию. Черты доступности по умолчанию для представления изображения являются Изображением, и Взаимодействие с пользователем Включило.

Для получения общей информации о создании доступных представлений iOS, посмотрите Доступные Представления Создания.

Интернационализация представлений изображения

Если Ваше представление выводит на экран только статические изображения, загруженные из Вашего комплекта приложений, интернационализация представлений изображения является автоматической. При загрузке изображений программно Вы, по крайней мере, частично ответственны за загрузку правильного образа.

  • Для ресурсов в Вашем комплекте приложений Вы делаете это путем указания имени в инспекторе атрибутов или путем вызова imageNamed: метод класса для UIImage получить локализованную версию каждого изображения.

  • Для изображений, которые не находятся в Вашем комплекте приложений, Ваш код должен сделать следующее:

    1. Определите, какое изображение загрузить способом, определенным для Вашего приложения, такого как обеспечение локализованной строки, содержащей URL.

    2. Загрузка, которые отображают путем передачи URL или данных для правильного образа к надлежащему UIImage метод класса, такой как imageWithData: или imageWithContentsOfFile:.

Для получения дополнительной информации посмотрите Руководство по Интернационализации и Локализации.

Отладка представлений изображения

При отладке проблем с представлениями изображения наблюдайте за этими распространенными ошибками:

  • Не загружая Ваше изображение корректным методом. При загрузке изображения из комплекта приложений использовать imageNamed:. При загрузке изображения из файла (с полным путем или URL), использовать imageWithContentsOfFile:.

  • Не создание изображения с анимацией структурирует тот же размер. Это помогает Вам избежать иметь необходимость иметь дело с масштабированием, мозаичным размещением или расположением различий между кадрами.

  • Использование непротиворечивого масштаба оценивает за все кадры изображения с анимацией. Смешивание изображений с различными масштабными коэффициентами может произвести неопределенное поведение.

  • Выполнение пользовательского получения в подклассе представления изображения. UIImageView класс оптимизирован для рисования его изображений к дисплею. UIImageView не вызывает drawRect: метод его подклассов. Если Ваш подкласс должен включать пользовательский код для прорисовки, необходимо разделить на подклассы UIView класс вместо этого.

  • Не включая обработку событий в подклассах, если Вам нужен он. Новые объекты представления изображения сконфигурированы для игнорирования пользовательских событий по умолчанию. Если Вы хотите обработать события в пользовательском подклассе UIImageView, необходимо явно изменить значение userInteractionEnabled свойство к YEStrue после инициализации объекта.

  • Не обеспечение предмасштабированных изображений, если это возможно. Например, если Вы ожидаете, что определенные большие изображения будут часто выведены на экран в уменьшенном масштаб режиме просмотра миниатюр, Вы могли бы рассмотреть хранение уменьшенных масштаб изображений в кэше миниатюры. Масштабирование изображения является относительно дорогой работой.

  • Не ограничение размера изображения. Рассмотрите предварительное масштабирование или мозаичное размещение больших изображений. Проект примера кода MVCNetworking (QImageScrollView.m) демонстрирует, как определить, на какой модели устройства на iOS Ваше программное обеспечение работает. Можно тогда использовать ту информацию, чтобы помочь Вам определить пороги размера изображения для использования при масштабировании или мозаичном размещении.

  • Не отключая альфу, смешивающуюся кроме при необходимости. Если Вы преднамеренно не работаете с изображениями, содержащими прозрачность (получающий элементы UI, например), необходимо обычно отмечать представление как непрозрачное путем установки флажка Opaque в Инспекторе Атрибутов или установки opaque свойство на самом представлении.

    Для представлений, которые не непрозрачны, устройство должно выполнить большое ненужное вычисление, если альфа-смешивание включено, и изображение содержит альфа-канал. Это влияние производительности далее увеличено при использовании Базовых теней Анимации потому что форма тени тогда на основе содержания представления и должна быть динамично вычислена.

    Чтобы узнать больше, как альфа-смешивание работает, посмотрите Смешивание Прозрачности и Альфы.

Элементы, подобные представлению изображения

Следующие элементы обеспечивают схожую функциональность для веб-представления:

  • Кнопка. Можно установить фоновое изображение кнопочного управления (типа UIButtonTypeCustom). Для получения дополнительной информации посмотрите Кнопки.

  • Прокрутите Представление. Представление изображения обычно увеличивает масштаб содержания или вниз соответствовать размерностям представления. Если необходимо вывести на экран изображение с управляемым пользователями изменением масштаба и масштабированием, необходимо поместить то представление изображения в представлении прокрутки. Для получения дополнительной информации посмотрите Представления Прокрутки.

  • Пользовательские Представления. Если Вы создаете пользовательский подкласс UIView, можно программно нарисовать изображения в drawRect: метод. (Для максимальной производительности необходимо сделать это только при необходимости.) Для получения дополнительной информации, займитесь Представлениями.