2010-12-13 3 views
3

У меня проблемы с моим подклассом UIViewdrawRect:. В этом я использую CGContextDrawRadialGradient(). Когда пользователь перетаскивает мой UIView, он изо всех сил старался не отставать, если включить градиент.drawRect: скорость и CGContextDrawRadialGradient (супер медленный?)

Использование Time Profiler Я вижу, что буквально> 98% моего времени проведено в моем подклассе drawRect: method.

Во-первых: будет ли использование статического изображения градиента быстрее? Второе: есть ли способ ускорить это? Могу ли я кэшировать градиент? он не меняется много, но пути вокруг него и пересечения его меняются при перетаскивании UIView.

Если кто-нибудь знает общее руководство о том, как сделать drawRect: методы не всасывают все циклы процессора, это было бы потрясающе.

ответ

0

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

См. Также идеи, упомянутые в this answer.