Это довольно старый пост о сезонном приложении, поэтому ОП, вероятно, все еще не работает над этой проблемой, но в случае, если другие сталкиваются с этой же проблемой и находят ее полезной.
Я согласен с Кримом в том, что перегрузка ЦП является распространенной причиной значительной задержки при обработке касаний, хотя существует много способов оптимизации, которые можно выполнить, прежде чем использовать OpenGL. CALayer довольно хорошо оптимизирован для задач, которые вы здесь описываете.
Сначала мы должны проверить основы:
- CALayers добавлено к основному виду
layer
touchesBegan:withEvent:
реализовано в главном виде
- Когда фаза
UITouchPhaseBegan
, вы вызываете hitTest:
на главном экране layer
, чтобы найти соответствующий подслой
- Последовательность штампов начинается на соответствующем объекте модели, обновляя слой.
Затем мы можем проверить производительность с помощью инструментов. Убедитесь, что ваш процессор не перегружен. В симуляторе все работает нормально, но на устройстве возникают проблемы?
Проблема, которую вы пытаетесь решить, очень распространена, поэтому не стоит ожидать сложного или хитрого решения. Скорее всего, у проекта или реализации есть основной недостаток, и ему просто нужно устранить неполадки.