从NSData创建的UIImages不遵守UIViewContentMode

时间:2012-02-25 00:25:59

标签: ios uiimageview uiimage

我一直在处理这个问题已经有一段时间了,但我真的想知道处理这种情况的正确方法:

如果我从CoreData获得NSData图像,那么:

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

如果图像大于UIImageView的CGRect,则图像不会将自身约束到UIImageView的CGRect。

我目前正在使用类似的代码解决问题:

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 :(得分:0)

您需要在设置内容模式后致电[cell.imageView setNeedsDisplay],或在设置setContentMode值之前将呼叫移至cell.imageView.image