2012-06-12 2 views
4

Я экспериментирую с некоторыми вещами для нового интерфейса в одном из моих приложений. Мне интересно, какой самый эффективный способ добавить элементы пользовательского интерфейса, такие как градиентный фон (с учетом как размера приложения, так и скорости/потребления памяти).Загрузка изображения или использование CGGradient более эффективно?

Могу ли я лучше создавать элементы в чем-то вроде Inkscape или Illustrator, а затем загружать их через UIImage> UIIMageView? Или было бы лучше использовать CGGradient или CAGradientLayer?

Кроме того, я задаюсь вопросом об этих вещах довольно часто, и мне интересно, может ли кто-нибудь объяснить, как я могу проверить эти вещи для себя (скорость, потребление памяти, общая производительность).

ответ

3

CAGradientLayers довольно хороши. Я почти всегда предпочитаю градиенты чертежа, используя CGGradient или используя CAGradientLayer, используя изображения, особенно потому, что вам не нужно включать в себя сетчатку/не сетчатку, комбинации iPhone/iPad и изменять цвета становятся предметом настройки одной строки кода, а не регенерации целого ряда изображений в вашем программном обеспечении для обработки изображений.

Если вы делаете другой рисунок в drawRect, рисуйте с помощью CGGradient. Если вам нужен только фон, используйте CAGradientLayer.

Вы можете анализировать производительность, используя инструменты (продукт -> Профиль в XCode)

  • инструмент ядро ​​анимации даст вам кадров в секунду, если есть прокрутка/анимация
  • время профилирования инструмент показать вам, какие функции занимают время
  • различных инструментов памяти покажут вам, потребление памяти
+0

Благодаря jrturton. Любая идея (без меня проверка себя), которая лучше для производительности? – daveMac

+0

Это действительно зависит от того, что еще вы делаете с этим видом. Я бы начал с простейшей реализации (cagradientlayer, IMO) и посмотрел в другом месте, если производительность не является удовлетворительной. Если вы не прокручиваете или анимируете, то производительность не имеет значения. – jrturton

Смежные вопросы