как обновить UIView без использования основного потока - PullRequest
0 голосов
/ 02 марта 2011

HI,

У меня есть небольшая головоломка.У меня есть UIView, который рисует дугу с течением времени в зависимости от скорости, с которой происходят определенные вещи в моем коде.Он никогда не может остановить рисование, и скорость, с которой он рисует, может измениться.

Когда я начал делать это, я подумал, что мне следует рассчитать процент дуги, чтобы нарисовать в отдельном потоке.Это отлично.Проблема в том, что для перерисовки дуги на основе нового процента мне нужно выполнить функцию updateArc в главном потоке.

Поскольку мое требование состоит в том, чтобы оно постоянно обновляло основной поток, оно никогдаделай что-нибудь ещеЕсли я не использую основной поток для вызова функции обновления дуги, обновление никогда не произойдет.

Как я могу постоянно обновлять UIView без прерывания основного потока?

Ответы [ 2 ]

0 голосов
/ 02 марта 2011

Один из способов ускорить ваш рисунок - перерисовать только ту часть вашей дуги, которая изменилась между обновлениями, и сделать эту часть вашего экрана недействительной только для перерисовки.В setNeedsRedraw вы можете указать, какой прямоугольник будет помечен для перерисовки.

Но в RTS сказали, что нет возможности рисовать в фоновом потоке.

0 голосов
/ 02 марта 2011

Редактировать: Вы можете использовать ссылку для отображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...