uitableviewcell изменить размер изображения - PullRequest
0 голосов
/ 28 января 2012

я загружаю данные в виде таблицы, каждая строка имеет простое изображение размером 500x300px, размер которого изменяется до размера ячейки.

Возможно ли изменить размер изображения?

tableview.m

NSString *filePath = [[NSBundle mainBundle] pathForResource:receip.image ofType:@"jpg"]; 
UIImage *image = [UIImage imageWithContentsOfFile:filePath]; 
cell.imageView.image = image;

Ответы [ 2 ]

1 голос
/ 28 января 2012

Я предполагаю, что вы имеете в виду изменить их размер, прежде чем помещать их в ячейку для повышения производительности?

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

//define desired size
CGSize size = CGSizeMake(100.0f, 100.0f);

//create drawing context
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0f);

//draw image at new size
[image drawInRect:CGRectMake(0.0f, 0.0f, size.width, size.height)];

//capture resultant image
UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Имейте в виду, что это вычислительно сложная задача. Возможно, вы захотите изменить размеры всех ваших изображений заранее, возможно, в фоновом потоке, и сохранить измененные версии в массиве. Вы определенно не хотите вставить приведенный выше код в метод cellForRowAtIndexPath, иначе производительность прокрутки таблицы будет дьявольской.

0 голосов
/ 29 января 2012

Если эти изображения получены из внешнего источника (скажем, из Интернета).Лучше сначала кэшировать исходный файл, а затем (как объяснено @Nick Lockwood) изменить его размер (помните, что для отображения в сетчатке для отображения в высоком разрешении требуется удвоенная ширина / высота).И после того, как этот процесс завершится, вы можете отправить сигнал о том, что «загрузка» завершена, и продолжить показ UITableView

Если у вас уже есть изображения в комплекте приложений, я предлагаю вам сделать большую версиюэто и добавить его в свой комплект.Для лучшей работы.

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