Реагирует ли элемент управления на событие (например, касание), зависит от того, является ли он первым респондентом .
Если событие является касанием, элемент пользовательского интерфейса, в котором произошло касание,становится первым респондентом.Это относится, например, к UIButton
.
Поскольку ваши кнопки работают до тех пор, пока вы не воспроизводили видео, это означает, что они активированы для взаимодействия с пользователем, и назначено целевое действие.
Когда вы играете и останавливаетесьвидео, и только UITextField
, но никакая кнопка не может стать первым респондентом, это означает для меня, что только UITextField
- это представление, которое можно коснуться, но не UIButtons
.Таким образом, UIButtons
должен быть закрыт другим представлением, которое не реагирует на нажатие.
Чтобы проверить это, я предлагаю остановить приложение на точке останова и нажать в области отладки Xcode кнопку Иерархия представления отладки.:
Затем вы должны увидеть, покрыты ли ваши кнопки чем-то другим.
РЕДАКТИРОВАТЬ:
Еще одна идея: возможно, по какой-то причине свойство canBecomeFirstResponder
вашей кнопки не равно true
(см. здесь ).Пожалуйста, проверьте это в отладчике.Если это false
, вы можете добиться успеха, явно указав true
.Для этого вам нужно было создать подкласс для вашей кнопки и переопределить var
как
override var canBecomeFirstResponder: Bool {
return true
}
, см. здесь .