iOS: распознавание потерянного касания UIView с включенным UITabGestureRecognizer - PullRequest
0 голосов
/ 14 марта 2019

Я использую импортированный объект кнопки, Floaty (https://github.com/kciter/Floaty), который является подклассом класса UIView. В одном из контроллеров представления, где я использую эту кнопку (которая включает в себя текстовое поле), кнопка не удастся выбрать при нажатии, если я включу следующую строку, чтобы закрыть клавиатуру при нажатии от ...

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)

Идея о том, как закрыть клавиатуру, возникла из этого SO-запроса: iOS - Отключить клавиатуру при касании за пределами UITextField

Я думал, что часть проблемы может заключаться в том, что кнопка Floaty должна находиться спереди, поэтому я добавил следующую строку кода, найденную из этого запроса SO: Потеря распознавания касания после добавления UIScrollView под UIButton

floaty.bringSubviewToFront(self.view)

Я добавил эту строку в конец моей функции ViewDidLoad () в представлении, где она используется.

(Важно отметить, что весь вышеупомянутый код находится в функции ViewDidLoad для моего контроллера представления)

Есть ли другой способ справиться с закрытием клавиатуры при нажатии на текстовое поле? Или есть что-то еще, что я должен сделать с объектом Floaty (UIView) для обработки событий касания / касания?

1 Ответ

0 голосов
/ 14 марта 2019

Вы можете попробовать использовать Hit Testing. С тестированием удара вы можете назначить вид, который обрабатывает касание. В этой замечательной статье объясняется, как применять тестирование на попадание

...