UIImages, созданные из NSData, не соблюдающие UIViewContentMode - PullRequest
5 голосов
/ 25 февраля 2012

Я имел дело с этой проблемой, обходя ее в течение достаточно долгого времени, но я действительно хотел бы знать правильный способ обработки ситуации:

Если я получу изображение в виде NSData из CoreData, какИтак:

NSData *myImageData = myEntity.Image;
cell.imageView.image = [UIImage imageWithData:myImageData];
[cell.imageView setContentMode:UIViewContentModeScaleAspectFit];

Если изображение больше, чем CGRect UIImageView, изображение не ограничивается CGRect UIImageView.

То, что я сейчас делаю, чтобы обойти эту проблему, используя код, похожий на:

CGSize size = CGSizeMake(98, 98);
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

cell.imageView.image = scaledImage;

Что работает, но я бы, конечно, хотел, чтобы кто-то сказал мне, что я делаю неправильно сПодход ContentMode в том виде, в каком он должен работать.

Спасибо, что нашли время прочитать мой вопрос.

1 Ответ

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

Вам нужно либо позвонить [cell.imageView setNeedsDisplay] после установки режима контента, либо переместить вызов на setContentMode до того, как вы установите значение cell.imageView.image.

...