UISystemGateGestureRecognizer i opóźnione stuknięcia w dolnej części ekranu
Jakie są standardyUISystemGestureGateGestureRecognizers
zainstalowany na najwyższym poziomieUIView
aplikacji dla systemu iOS?
Moja aplikacja składa się z dwóch widoków - jeden wypełnia górną część ekranu, drugi jest klawiaturą niestandardową i wypełnia dolną połowę. Stwierdziłem, że stuknięcia w spację nie zawsze działają i po przeprowadzeniu pewnego dochodzenia ustalono, że czas zdarzeń kranu w dolnej 20 pikselach był inny niż reszta widoku. Przez większość czasu okres między touchesBegan / Ended wynosił około 100 ms, a dla spacji 1-2 ms. (Moja aplikacja jest emulatorem i jest zbyt szybka, aby wykryć naciśnięcie klawisza).
Po dalszych kopaniach znalazłem głównąUIView
aplikacji (tj. podgląd mojego głównego widoku) ma 2UISystemGestureGateGestureRecognizer
jest zainstalowany. Usuwając jeViewDidAppear
na dole ekranu nie ma już wpływu. (Prawdopodobnie anulują one zdarzenia dotyku prasy na mojej klawiaturze, stąd szybszy czas).
Te systemy rozpoznawania są obecne co najmniej od iOS 5 do 7 oraz na iPadzie i iPhonie. Pomyślałem, że mogą być powiązane z machnięciem od góry / dołu, ale ta funkcja nadal działa z nimi usunięta.
Mam więc poprawkę, ale chciałbym dowiedzieć się więcej o tym, co się tutaj dzieje - w szczególności o tym, co mogę złamać, usuwając je.