2012-01-23 2 views
3

Я показываю фон моего представления, используя узорное изображение.Фаза изображения с рисунком неправильная на iOS 3.x

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"main_bg_tile.png"]]; 

Изображение плитки 1x512px большое. 512 пикселей, потому что в соответствии с изображениями Apple docs изображение должно иметь размер 2 по соображениям производительности. И после моего профилирования я узнал, что если я использую изображение, не имеющее мощности 2, iOS создает резервное хранилище для этого изображения (больше потребления памяти, чем использование 2-х изображений).

Все отлично работает на прошивке 4 и 5, но не на прошивке 3.

КСНА 3 фазы узорных изображений не является правильным. Похоже, что он начинается с нижнего левого угла, чтобы нарисовать изображение вместо левого верхнего угла, как указано в документах Apple.

По умолчанию фаза возвращаемого цвета равна 0, что приводит к выравниванию левого верхнего угла изображения с исходным рисунком. Чтобы изменить фазу, сделайте цвет текущим цветом, а затем используйте функцию CGContextSetPatternPhase для изменения фазы.

Я нашел обходной путь: Используйте фактический размер для мозаичных изображений, а не степени 2. Но с этим я теряю преимущество памяти образа с размером мощности 2.

ли кто-то заметил это поведение? Как я могу правильно исправить эту проблему на iOS 3?

ответ

0

Я использовал фоновое изображение из рисунка и загрузил изображение pvr таким образом, что у вас может быть небольшое изображение, но IOS3 вам понадобится получить загрузчик pvr. PowerVR SDK, но его C++.

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