UIImageView内容模式和比例因子

时间:2012-08-23 19:47:42

标签: ios uiimageview retina-display

我有一个以编程方式创建的UIImage图像,使用这种代码:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(128, 128), NO, 0.0f);
// Render in context
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

由于我的上下文选项指定scale为0,因此在视网膜设备上它将设置为2,并且我可以在得到的UIImage scale属性上确认。

现在,问题是这个图像大小是128x128,比例2.当我将它放入大小为64x64的UIImageView并且contentMode = Center时,它将我的图像渲染到imageview之外,可能会渲染到128x128框而没有任何缩放。< / p>

我对视网膜图形的理解是,如果图像具有比例因子2.0,则应该以1/2尺寸呈现,从而导致更高的DPI。 所以我期待图像视图以视网膜质量渲染64x64图像。我哪里错了?

1 个答案:

答案 0 :(得分:0)

图像将以您给出的尺寸渲染 - 128 x 128.比例因子意味着您将拥有更好的渲染曲线等,但图像仍然是128 x 128点。如文档中所述,size参数为:

  

新位图上下文的大小(以衡量)。这表示UIGraphicsGetImageFromCurrentImageContext函数返回的图像的大小。

如果您需要视网膜质量的64x64图像,请根据您的背景使用64x64尺寸。