Потребление памяти при загрузке большого изображения в uiimageview в - PullRequest
1 голос
/ 24 мая 2011

Я загружаю UIImage размером 2480 × 3508 в UIImageView, используя UIViewContentModeScaleAspectFit.Я получаю предупреждение памяти при загрузке этого изображения.И после того, как я загрузил несколько изображений этого размера в этом UIImageView, приложение вылетает.Есть ли способ решить эту проблему.

Ответы [ 3 ]

3 голосов
/ 24 мая 2011

Решение этой проблемы заключается либо в загрузке уменьшенной версии изображения (* 1), либо у вас есть возможность отобразить его в полном разрешении с помощью CATiledLayer (* 2).

  1. [UIImageimageWithCGImage: scale: direction:];
  2. Пример CATiledLayer

Добавление: Если источником изображения является библиотека фотографий, ALASSet предоставляет уже масштабированное изображение на весь экран иизображение в полном разрешении.Вы можете использовать комбинацию обоих с CATiledLayer.Полноэкранное изображение добавляется в слой под CATiledLayer, чтобы служить заполнителем, пока вы ожидаете загрузки плиток в CATiledLayer.

1 голос
/ 24 мая 2011

Ну, согласно документации:

Вам следует избегать создания объектов UIImage, размер которых превышает 1024 x 1024.

Уменьшите изображение, затем загрузите его в ImageView, для этого есть множество библиотек, вот одна из них:

https://github.com/Nyx0uf/NYXImagesUtilities

0 голосов
/ 24 мая 2011

Вы можете использовать это для масштабирования Метод описан просто по следующей ссылке:

Как пропорционально масштабировать UIImageView?

...