Ответ
isUserInteractionEnabled — это булево свойство UIView, которое определяет, обрабатывает ли данное представление события касания (тапы, свайпы, драг и т.д.).
Значения и поведение:
true(по умолчанию для большинства вью): View получает и обрабатывает touch-события.false: View полностью игнорирует все touch-события. Они "проходят сквозь" эту вью и попадают к представлениям, находящимся ниже в иерархии.
let button = UIButton(type: .system)
button.setTitle("Tap Me", for: .normal)
button.isUserInteractionEnabled = false // Кнопка видна, но нажатия не работают
let containerView = UIView()
containerView.isUserInteractionEnabled = false // Все subviews также перестают быть интерактивными
Ключевые моменты:
- Локальность: Отключение взаимодействия для родительской вью (
superview) автоматически отключает его для всех её подчинённых вью (subviews). - Влияние только на события: Свойство влияет исключительно на обработку пользовательского ввода. Анимации, изменения фона, текста и другие программные модификации работают как обычно.
- Особые случаи: Для
UILabel,UIImageView(без специальной настройки) значение по умолчанию —false, так как они изначально считаются неинтерактивными элементами отображения контента.