Какие ключевые свойства есть у UIView в UIKit?

«Какие ключевые свойства есть у UIView в UIKit?» — вопрос из категории UIKit, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основные свойства UIView, определяющие его внешний вид, положение и поведение:

  • frame (CGRect) — положение и размер в системе координат родительского представления (superview).
  • bounds (CGRect) — внутренняя система координат представления (начало обычно (0, 0)).
  • center (CGPoint) — центр frame относительно superview.
  • transform (CGAffineTransform) — применяемые аффинные преобразования (поворот, масштабирование, перемещение).
  • alpha (CGFloat) — прозрачность от 0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный).
  • isHidden (Bool) — управляет видимостью представления.
  • backgroundColor (UIColor?) — цвет фона.
  • clipsToBounds (Bool) — если true, содержимое (например, субвью) обрезается по границам bounds.
  • layer (CALayer) — базовый слой Core Animation, используемый для рендеринга.
  • isUserInteractionEnabled (Bool) — определяет, обрабатывает ли представление касания и другие события.

Почему это важно: frame и bounds часто путают. frame зависит от системы координат родителя и трансформаций, а bounds определяет внутреннюю область для рисования.

Пример:

let redView = UIView()
// Устанавливаем положение и размер
redView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
redView.backgroundColor = .systemRed
redView.alpha = 0.7
// Поворачиваем на 45 градусов
redView.transform = CGAffineTransform(rotationAngle: .pi / 4)
// Обрезаем дочерние вью по границам
redView.clipsToBounds = true