Скопировано из документации Apple для разработчиков, но мне очень помогает понять представления и управлять несколькими представлениями.
Советы по эффективному использованию представлений
Пользовательские представления полезны дляситуации, когда вам нужно нарисовать что-то, чего нет в стандартных системных представлениях, но вы обязаны убедиться, что производительность ваших представлений достаточно высока.UIKit делает все возможное, чтобы оптимизировать поведение, связанное с представлениями, и помочь вам добиться хорошей производительности в ваших пользовательских представлениях.Тем не менее, вы можете помочь UIKit в этом аспекте, рассмотрев следующие советы:
Представления не всегда имеют соответствующий контроллер представления
Редко встречается один-к-одномуодна связь между отдельными представлениями и контроллерами представления в вашем приложении.Работа контроллера представления заключается в управлении иерархией представления, которая часто состоит из нескольких представлений, используемых для реализации некоторой автономной функции.Для приложений iPhone каждая иерархия представлений обычно занимает весь экран, хотя для приложений iPad иерархия представлений может занимать только часть экрана.
При разработке пользовательского интерфейса вашего приложения важно учитывать роль, которуюконтроллеры вида будут играть.Контроллеры представлений обеспечивают множество важных действий, таких как координация представления представлений на экране, координация удаления этих представлений с экрана, освобождение памяти в ответ на предупреждения о нехватке памяти и вращающиеся представления в ответ на изменения ориентации интерфейса.Обход этого поведения может привести к тому, что ваше приложение будет работать некорректно или непредвиденным образом.
Дополнительные сведения о контроллерах представления информации и их роли в приложениях см. В Руководстве по программированию контроллера представления для iOS.
СвернутьНестандартный рисунок
Хотя иногда требуется нестандартный рисунок, его также следует избегать при любой возможности.Единственный раз, когда вы действительно должны делать какие-либо пользовательские рисунки, это когда существующие классы системного представления не обеспечивают требуемый внешний вид или возможности.Каждый раз, когда ваш контент может быть собран с помощью комбинации существующих представлений, лучше всего объединить эти объекты представления в пользовательскую иерархию представлений.
Воспользуйтесь преимуществами режимов содержимого
Режимы содержимого минимизируют количество времени, затрачиваемое на перерисовку ваших просмотров.По умолчанию представления используют режим содержимого UIViewContentModeScaleToFill, который масштабирует существующее содержимое представления в соответствии с прямоугольником рамки представления.При необходимости вы можете изменить этот режим, чтобы по-разному настраивать содержимое, но по возможности избегайте использования режима содержимого UIViewContentModeRedraw.Независимо от того, какой режим содержимого работает, вы всегда можете заставить свой вид перерисовать его содержимое, вызвав setNeedsDisplay или setNeedsDisplayInRect:.
Объявите представления как непрозрачные, когда это возможно
UIKit использует непрозрачное свойство каждого представления, чтобы определить, может ли представление оптимизировать операции компоновки.Установка значения этого свойства в YES для пользовательского представления говорит UIKit, что ему не нужно отображать какой-либо контент за вашим представлением.Меньше рендеринга может привести к увеличению производительности вашего кода для рисования и обычно рекомендуется.Конечно, если для непрозрачного свойства установлено значение YES, ваше представление должно полностью заполнить прямоугольник границ полностью непрозрачным содержимым.
Настройка поведения чертежа при прокрутке при просмотре
Южная КаролинаРоллинг может повлечь за собой многочисленные обновления просмотра в короткие сроки. Если код отрисовки вашего вида не настроен должным образом, производительность прокрутки для вашего вида может снизиться. Вместо того, чтобы постоянно следить за тем, чтобы содержимое вашего представления было нетронутым, рассмотрите возможность изменения поведения вашего представления при запуске операции прокрутки. Например, вы можете временно снизить качество отображаемого содержимого или изменить режим содержимого во время выполнения прокрутки. Когда прокрутка останавливается, вы можете вернуть вид в прежнее состояние и обновить его по мере необходимости.
Не настраивать элементы управления путем встраивания подпредставлений
Хотя технически возможно добавить подпредставления к стандартным системным элементам управления - объектам, наследуемым от UIControl, - вы никогда не должны настраивать их таким образом. Элементы управления, которые поддерживают настройки, делают это через явные и хорошо документированные интерфейсы в самом классе элементов управления. Например, класс UIButton содержит методы для установки заголовка и фоновых изображений для кнопки. Использование определенных точек настройки означает, что ваш код всегда будет работать правильно. Обход этих методов путем встраивания пользовательского представления изображения или метки в кнопку может привести к некорректной работе приложения в настоящее время или в будущем, если реализация кнопки изменится.