Я работаю над игрой и использую подкласс CAEAGLLayer
с поддержкой UIView
для представления игрового движка. Сенсорная обработка выполняется с использованием -touchesBegan:withEvent:
et. и др.
Все работает отлично, за исключением того, что очень редко, если быстро нажимать на один из элементов управления на экране, -touchesBegan:withEvent:
не вызывается где-то между 0,1 и 1-2 секундами. Это происходит, может быть, один раз в 20 раз, и только если вы сначала быстро нажмете на экран (4-5 раз). Вероятнее всего, это произойдет, если я также удерживаю другой палец на другом элементе управления на экране.
Думая, что это как-то связано с моим собственным кодом, я вложил в подкласс UIApplication
, чтобы добавить оператор ведения журнала в -sendEvent:
. Когда происходит медленное касание, -sendEvent:
не вызывается до тех пор, пока через некоторое время не начнется касание, поэтому код обработки касания в моем подклассе UIView
, похоже, не виноват.
Кто-нибудь знает, что здесь происходит (кроме того, что в iOS есть какая-то неясная ошибка)? Есть ли какая-то внутренняя «очередь событий», которая делает доставку событий запаздывающей, когда она заполняется? Кто-нибудь еще испытывал это?