Должен ли UIView -drawRect: вызываться в основном потоке? - PullRequest
0 голосов
/ 03 марта 2011

Нужно ли рисовать метод UIView -drawRect: в главном потоке или CADisplayLink может вызывать -setNeedsDisplay в пользовательском представлении в другом цикле выполнения?

Ответы [ 2 ]

10 голосов
/ 17 декабря 2011

Начиная с iOS 4.0 , вы можете рисовать в UIView's -drawRect: в фоновом потоке:

  • Рисование в графическом контексте в UIKit теперь является потокобезопасным. В частности:
    • Процедуры, используемые для доступа к графическому контексту и манипулирования им, теперь могут корректно обрабатывать контексты, находящиеся в разных потоках.
    • Рисование строк и изображений теперь поточно-ориентировано.
    • Использование объектов цвета и шрифта в нескольких потоках теперь безопасно.

См. Также их комментарии в Технические вопросы и ответы QA1637 относительно этого в iOS 4.0.

Любая версия iOS до этого должна иметь этот рисунок в главном потоке.

2 голосов
/ 03 марта 2011

Все вызовы UIKit должны выполняться в главном потоке.

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