Фаза шаблонного изображения неверна на iOS 3.x - PullRequest
3 голосов
/ 23 января 2012

Я показываю свой фоновый вид, используя узорное изображение.

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

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

Всеотлично работает на iOS 4 и 5, но не на iOS 3.

На iOS 3 фаза шаблонного изображения не правильная.Кажется, это начинается с левого нижнего угла, чтобы нарисовать изображение вместо левого верхнего угла, как указано в документации Apple.

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

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

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

1 Ответ

0 голосов
/ 09 февраля 2012

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

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