В iOS каждый UIView поддерживается с помощью Core Animation CALayer, поэтому вы имеете дело с CALayers при использовании UIView, даже если вы можете этого не осознавать.В отличие от NSViews на Mac, которые развивались до появления Core Animation, UIViews предназначены для облегчения использования этих CALayers.
Как я опишу в аналогичном вопросе "Когда использовать CALayer на Mac / iPhone? ", работа напрямую с CALayers не дает вам значительных преимуществ по сравнению с UIViews.Одна из причин, по которой вам может понадобиться создать элемент пользовательского интерфейса с помощью CALayers вместо UIViews, заключается в том, что его можно очень легко перенести на Mac.UIViews очень отличаются от NSViews, но CALayers почти идентичны на двух платформах.Вот почему платформа Core Plot выкладывает свои графики с использованием CALayers вместо других элементов пользовательского интерфейса.
Одна вещь, которую UIViews предоставляет поверх CALayers, - это встроенная поддержка взаимодействия с пользователем.Они выполняют тестирование попаданий касаниями и другими связанными действиями, которые вам нужно будет создать самостоятельно при управлении иерархией CALayers.Это не так сложно реализовать самостоятельно, но это дополнительный код, который вам нужно написать при создании интерфейса только для CALayer.
При выполнении более сложных задач вам часто потребуется доступ к базовым слоям для UIView.анимации, чем позволяет базовый класс UIView.Возможности анимации UIView выросли по мере развития iOS SDK, но есть еще несколько вещей, которые лучше всего сделать, взаимодействуя с базовым CALayer.