iPhone Quartz Изображение Рисование Производительность. - PullRequest
0 голосов
/ 29 июля 2011

В настоящее время у меня есть горизонтальный UIScrollView, заполненный UIViews.Виды снимаются при удалении с экрана и используются повторно.Каждый UIView разделен на подклассы для рисования изображений, используя drawInRect с вызовом [someView setNeedsDisplay], когда представление выходит на экран.

[_image drawInRect:imageRect];

Мои градиенты, текст, фигуры и т. Д. Все загружаются плавно, но как только я рисую изображение, я испытываю заметное снижение производительности.Размер изображения, кажется, не имеет значения, потому что представление прокрутки всегда запаздывает.(Я получаю тот же результат и при использовании UIImageView.) Все мои изображения также загружаются заранее.

Есть ли лучший способ рисовать изображения, которые не приведут к снижению производительности?

1 Ответ

2 голосов
/ 29 июля 2011

Если вы просто рисуете изображения, вы можете рассмотреть возможность использования CALayer s с CGImageRef содержимым - drawRect: переопределения будут медленнее, чем CALayer композитинг. Еще одна вещь, на которую стоит обратить внимание, это альфа-смешанные изображения, которые требуют частой перекомпоновки, или изображения, которые не выровнены по целым пикселям. Техническая заметка Повышение качества рисования на iOS - отличное место для начала такого рода вещей. Когда у вас есть основы, инструмент Core Animation в инструментах будет вам очень полезен - он будет следить за смешиванием, копированием изображений, смещением изображений и обновлением экрана.

...