Сравнение производительности визуального оформления на iPhone различными способами - PullRequest
0 голосов
/ 27 января 2012

Предположим, нам нужно декорировать UIButton, UIView и т. Д. В iOS мы используем следующие методы:

  1. используем свойства CALayer, такие как borderWidth, CATransform, CAGradientLayer и т. Д.
  2. используйте drawRect: метод UIView и выполняйте наш декоративный рисунок с помощью CG.
  3. используйте только уже подготовленное изображение для рисования на фоне UIView или его слоя.

Now,у меня вопрос из вышеприведенных 3: какой из них требует меньше времени на обработку и дает большую скорость (повышение производительности)?

Как я заметил, в представлениях, которые постоянно получают обновления (визуально), как в виде таблицы;даже если применяется layer.shouldRasterise = YES, производительность все еще очень низкая.А если активен cornerRadius, то производительность становится хуже.

Спасибо всем.

1 Ответ

0 голосов
/ 27 января 2012

Это зависит от ситуации, если вас не волнует потребление памяти - изображения должны работать лучше, с другой стороны, если вы хотите минимизировать использование памяти - CALayer + Drawing делает всю работу за меня.

Что касается cornerRadius и других подобных свойств - вы можете легко выполнить ту же самую работу, выполняя рисование, это было бы более эффективно.

Также проверьте последние сеансы WWDC, был один (я не помню имя) оНастройка производительности UIKit / CoreGraphics.

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