Простая картина:
Перебирая экран iPhone, вы рисуете временную графику в UIView. Эта временная графика стирается после касания и затем сохраняется в базовом UIView.
Процесс прост:
1) Сенсорный запуск и перемещение >>
2) Рисование временной графики поверх UIView >>
3) Концы касания >>
4) Передача временной графики в базовый UIView >>
5) Базовый UIView добавляет временную графику к хранимой графике >>
6) Базовая UIView перерисовывает всю сохраненную графику >>
7) Удалить временную графику сверху UIView.
Таким образом, я могу накапливать графику в базовом UIView, сохраняя при этом отзывчивое рисование временной графики в верхнем UIView.
(Sidenote: каждый «Drawing» - это просто NSArray пользовательских «Point» объектов, которые являются просто контейнерами NSObject для CGPoints. А базовый UIView имеет отдельный NSArray, где он хранит эти NSArrays CGPoints)
Проблема в следующем:
Когда в базовом UIView накопилось много графики, требуется время, чтобы нарисовать все это на экране. И любые новые рисунки в верхнем UIView не будут отображаться, пока не будет завершено рисование лежащей в основе графики. Таким образом, при большом количестве графики на экране наблюдается заметная задержка.
Вопрос:
Кто-нибудь может придумать хороший способ повышения производительности, чтобы не было заметного лага между чертежами, когда на экране много графики?