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