drawRect: скорость и CGContextDrawRadialGradient (супер медленный?) - PullRequest
3 голосов
/ 13 декабря 2010

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

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

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

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

1 Ответ

0 голосов
/ 30 декабря 2010

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

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

...