UIImageView 内容模式和比例因子
Posted
技术标签:
【中文标题】UIImageView 内容模式和比例因子【英文标题】:UIImageView content mode and scale factor 【发布时间】:2012-08-23 19:47:41 【问题描述】:我有一个使用这种代码以编程方式创建的 UIImage 图像:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(128, 128), NO, 0.0f);
// Render in context
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
由于我的上下文选项指定比例为 0,因此在视网膜设备上它将设置为 2,我可以在生成的 UIImage 比例属性上确认这一点。
现在,问题是该图像尺寸为 128x128,比例为 2。当我将其放入尺寸为 64x64 且 contentMode = Center 的 UIImageView 中时,它会将我的图像渲染到 imageview 之外,大概会渲染到 128x128 的框内而无需任何缩放。
我对 Retina 图形的理解是,如果图像的比例因子为 2.0,则它应该以 1/2 大小呈现,从而导致更高的 DPI。 所以我期待图像视图以视网膜质量呈现 64x64 图像。我哪里错了?
【问题讨论】:
【参考方案1】:图像将以您提供的尺寸渲染 - 128 x 128。比例因子意味着您将获得更好的渲染曲线等,但图像仍将是 128 x 128 点。如文档中所述,大小参数为:
新位图上下文的大小(以 点 为单位)。这表示 UIGraphicsGetImageFromCurrentImageContext 函数返回的图像的大小。
如果您想要视网膜质量的 64x64 图像,请为您的上下文使用 64x64 尺寸。
【讨论】:
谢谢。请问你怎么这么快就发现了这个问题?我为 RSS 提要的延迟而苦恼 刚出现在首页上。我不使用 RSS 提要,并且设置了我喜欢和忽略的标签。以上是关于UIImageView 内容模式和比例因子的主要内容,如果未能解决你的问题,请参考以下文章