Виды - UIView

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

Виды реализованы в UIView классе.

Контент видов

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

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

Поле Tag (свойство tag) определяется как целое число (integer), которое можно использовать для идентификации объектов вида в вашем приложении.

uiview atribute inspector

Поведение видов

По умолчанию опция User Interaction Enabled выбрана (свойство userInteractionEnabled), что означает, что пользовательские события, такие как прикосновения и ввод от клавиатуры доставляются в вид обычным образом. Когда опцие не выбрана, события, предназначенные для вида игнорируются и удаляются из очереди событий.

Опция Multiple Touch (свойство multipleTouchEnabled) не выбрана по умолчанию, что означает, что вид получает только первое сенсорное событие в последовательности мульти-сенсорных. При выборе, вид получает все прикосновения, связанные с мультитач последовательностью.

uiview multi touch

Виды также имеют ряд свойств, связанных с поведением отрисовки:

uiview drawing
  • Opaque (свойство opaque) говорит системе отрисовки, как она должна обрабатывать вид. Если опция выбрана, система отрисовки обрабатывает вид как полностью непрозрачный, что позволяет системе оптимизировать некоторые операции отрисовки и повысить производительность. Если опция не установлена, система отрисовки обычно объединяет вид с другим контентом. Вы всегда должны отключать эту опцию, если ваш вид полностью или частично прозрачен.
  • Hidden (свойство hidden), если опция выбрана, вид становится невидимым в своем окне и не получает событий ввода.
  • Clears Graphics Context (свойство clearsContextBeforeDrawing), при выборе опции, отрисовка буфера автоматически очищается в прозрачный черный перед отрисовкой вида. Такое поведение гарантирует, что не возникнет никаких визуальных искажений, сохранившихся от перерисовки контента вида.
  • Clip Subviews (свойство clipsToBounds), опция говорит подвидам должны ли они обрезать себя за пределами вида. Если выбрана данная опция, подвиды, чьи границы выходят за пределы видимых границ вида не обрезаются.
  • Autoresize Subviews (autoresizesSubviews), при выборе опции, вид регулирует размер своих подвидов, когда изменяются его границы.

Внешний вид видов

Цвет фона и прозрачность

Настройка Альфа канала (свойство alpha) изменяет прозрачность вида в целом. Это значение может варьироваться от 0,0 (прозрачный) до 1,0 (непрозрачный). Установка значения свойства alpha вида не влияет на его встроенные подвиды.

Используйте поле Background (свойство backgroundColor), чтобы выбрать цвет, который заполнит весь кадр представления вида. Цвет фона проявится под всеми другими элементами в виде.

uiview alpha, background

Виды также имеют свойство tintColor, который определяет цвет ключевых элементов в представлении вида. Каждый подкласс UIView определяет свой собственный внешний вид и поведение для tintColor. Например, это свойство определяет цвет контура, разделителя и значков у stepper:

uistepper xcode

Свойство tintColor это быстрый и простой способ обернуть ваше приложение в пользовательский цвет. Установка цвета оттенка для вида автоматически устанавливает оттенок цвета для всех его подвидов. Тем не менее, вы можете вручную изменять это свойство в любом из этих подвидов и его потомков. Другими словами, каждый вид наследует оттенок цвета своего супервида, если его собственный оттенок цвета равен нулю. Если представление высокогой уровеня в иерархии видов имеет нулевое значение для цвета оттенка, по умолчанию используется системный синий цвет.

Шаблон изображений

В iOS 7, вы можете выбрать для обработки любое из изображений в вашем приложении в качестве шаблона или трафарета изображения. Когда вы решили обработать изображение в качестве шаблона, система игнорирует информацию о цвете изображение и создает трафарет изображения, основываясь на альфа значении изображения (части изображения с альфа-значением менее 1,0) . Этот трафарет может быть перекрашен с помощью tintColor чтобы соответствовать остальной части пользовательского интерфейса.

По умолчанию, изображение (UIImage) создается с UIImageRenderingModeAutomatic. Если у вас установлено UIImageRenderingModeAutomatic у изображения, оно будет рассматриваться как шаблон или оригинал, исходя из его контекста. Некоторые UIKit элементы-в том числе панели навигации, панели вкладок, панели инструментов, сегментированный элемент управления автоматически относятся к своим изображениям переднего плана как к шаблонам, хотя их фоновые изображения, рассматриваются как оригиналы. Другие элементы, такие как виды изображений и веб-виды относятся к своим изображениям как оригиналам. Если вы хотите, чтобы ваше изображение всегда рассматривалось в качестве шаблона вне зависимости от контекста, установите UIImageRenderingModeAlwaysTemplate; если вы хотите, чтобы ваше изображение всегда рассматривалось как оригинал, установите UIImageRenderingModeAlwaysOriginal.

Чтобы указать режим рендеринга изображения, необходимо сначала создать стандартное изображение, а затем вызвать imageWithRenderingMode: метод для этого изображения.

UIImage *myImage = [UIImage imageNamed:@"myImageFile.png"];
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

Использование автоматической компоновки с видами

Система Автоматической компоновки позволяет определить ограничения макета для элементов пользовательского интерфейса, таких как виды и элементы управления. Ограничения представляют связи между элементами пользовательского интерфейса. Вы можете создавать ограничения автокомпоновки, выбрав соответствующий элемент или группу элементов и выбрав опцию из меню в нижнем правом углу Xcode в Interface Builder.

Автоматическая компоновка содержит два меню ограничений: pin и align. Меню Pin позволяет задать ограничения, которые определяют некоторые отношения, основанные на заданных значениях или диапазоне значений. Некоторые примененяются к элементу управления сами (ширина), а другие определяются связями между элементами (горизонтальный промежуток).

 
 
homeЗаметили ошибкукарта сайта 
   Made on a Mac