我的印象是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返回给我。但是当我看到扑克牌上的图像时,当我在更大的图像视图中看到它时,它在其他地方的图像就不那么清晰了。是否有一个原因?感谢。
第一张图片,清脆:第二张图片,不那么清脆:
答案 0 :(得分:0)
简单。您在1.0
来电中设置了UIGraphicsBeginImageContextWithOptions
的scaleFactor。如果您在带有视网膜屏幕的设备上运行,这将导致您的艺术品以50%的大小呈现。您可以将1.0
更改为2.0
或更好,从UIDevice
类获取比例因子。