我处理这个问题已经有很长一段时间了,但我真的想知道处理这种情况的正确方法:
如果我从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方法中做错了什么,因为它应该是有效的。
感谢您抽出时间阅读我的问题。
发布于 2012-02-25 17:30:53
您需要在设置内容模式之后调用[cell.imageView setNeedsDisplay],或者在设置cell.imageView.image值之前将调用setContentMode移动到。
https://stackoverflow.com/questions/9439962
复制相似问题