В моем приложении у меня есть UIViewController с подклассом UIView (и несколькими другими элементами) внутри него. Внутри UIView, называемого DrawView, в моем методе drawRect:
я рисую объект типа сетки таблицы и рисую на ней массив CGPoints. Когда пользователь касается экрана, он вызывает touchesBegan:withEvent:
и проверяет, чтобы найти ближайшую к касанию точку на сетке, добавляет точку в массив, из которого метод drawRect:
извлекает точки, и вызывает [self setNeedsDisplay]
. Когда пользователь перемещает палец по экрану, он проверяет, изменилась ли точка с последнего местоположения, обновляет точку и при необходимости вызывает [self setNeedsDisplay]
.
Это отлично работает в Симуляторе. Однако при запуске на реальном iPhone он работает очень медленно, когда вы двигаете пальцем, он отстает в рисовании точки. Я читал, что текущие вычисления того, где разместить точки в другом потоке, могут улучшить производительность. У кого-нибудь есть опыт в этом, кто знает это на самом деле? Есть ли другие предложения по уменьшению задержки?