Я показываю свой фоновый вид, используя узорное изображение.
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?