使用UIViewContentModeAspectFit UIImageView图像不清晰

时间:2012-04-03 19:00:11

标签: iphone

我的印象是UIImageView会相应地缩放你的图像,但我不确定我是否理解它。所以我在两个地方有一个图像,一个比另一个小。在较小的区域,图像不清晰。我为这个小区域做的是:

UIImageView *container = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
UIImageView *graphic = [[[UIImageView alloc] initWithFrame:CGRectMake(10, 10 , 120, 120)] autorelease];
[graphic setImage:[UIImage imageNamed:@"test.png"]];
graphic.contentMode = UIViewContentModeScaleAspectFit;
[container addSubview:graphic];
    UIGraphicsBeginImageContextWithOptions(container.bounds.size, NO, 1.0);
    [container.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext(); 

我基本上将我的图形作为容器的子视图。就像扑克牌上的图像一样,然后这个方法将viewImage返回给我。但是当我看到扑克牌上的图像时,当我在更大的图像视图中看到它时,它在其他地方的图像就不那么清晰了。是否有一个原因?感谢。

第一张图片,清脆: enter image description here

第二张图片,不那么清脆: enter image description here

1 个答案:

答案 0 :(得分:0)

简单。您在1.0来电中设置了UIGraphicsBeginImageContextWithOptions的scaleFactor。如果您在带有视网膜屏幕的设备上运行,这将导致您的艺术品以50%的大小呈现。您可以将1.0更改为2.0或更好,从UIDevice类获取比例因子。