У меня есть пользовательское представление, которое состоит из нескольких UIImageViews.Эти UIImageViews могут различаться по размеру (от 200x200 до 50x50).Изображения, которые они отображают (загружают из файлов png), хранятся в ресурсах с максимально возможным разрешением (200x200), но часто отображаются с меньшим разрешением.
В настоящее время я просто загружаю UIImageViews изображениями с полным разрешением, таким образом:
UIImage* anImage = [UIImage imageWithContentsOfFile:imagePathAndName]; // anImage is 200x200
aView = [[UIImageView alloc] initWithImage:anImage];
aView.frame = myFrame; // myFrame is 50x50
Первый вопрос, есть ли какое-либо ухудшение производительности (время памяти или ЦП), чтобы просто позволить UIImageView уменьшать изображения, скажем, с 200x200 до 50x50?Не похоже, что мое приложение использует тонну памяти или замедляется в результате этого, но если бы я мог ускорить его или уменьшить потребление памяти, это было бы победой.
Я играл вокругс масштабированием изображений программно.Вот так:
UIImage* anImage = [UIImage imageWithContentsOfFile:imagePathAndName]; // Image is UIGraphicsBeginImageContext( scaledSize ); // scaledSize is 50x50
CGRect scaledRect = CGRectMake( 0.0, 0.0, scaledSize.width, scaledSize.height );
[anImage drawInRect:scaledRect];
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); // Scaled image is now 50x50
UIGraphicsEndImageContext();
aView = [[UIImageView alloc] initWithImage:scaledImage];
aView.frame = myFrame; // myFrame is 50x50
Программное масштабирование изображений сначала, казалось, не оказало вредного воздействия ... пока я не загрузил его на свой iPhone 4. Видите, размер UIImageView основан на размере, если он родительскийview, который (выложен в IB), является размером экрана iPhone 3G.К сожалению, размер этого представления при работе на iPhone 4 одинаков, несмотря на то, что у iPhone 4 разрешение в два раза больше, чем у 3G.Поэтому, масштабируя изображения в зависимости от размера изображения, я получаю более низкое разрешение, чем должно быть на iPhone 4, и они выглядят довольно дерьмово.
Итак, второй вопрос, если естьНекоторое преимущество заключается в программном масштабировании изображений.как я могу воспользоваться дополнительными пикселями на iPhone 4?Очевидно, я не могу пойти по размеру моего взгляда.