我有一个 UIImage
,我想在 iPhone 4/4S/5 屏幕上逐像素显示。根本不缩放它很重要,但是当我尝试使用 setImage
时,它会使图像太大。
我的 UIImageView
是在 UIStoryboard
中制作的(因为我对此很陌生),并设置为“重绘”模式,其他一切均默认。其他模式均未正确缩放 UIImage
(编辑:也就是说,将 UIImageViews
contentMode 设置为其他内容将不起作用)。
我环顾四周,发现了这个:
[self.imageView setImage: image];
self.imageView.frame = CGRectMake(self.imageView.frame.origin.x,
self.imageView.frame.origin.y,
image.size.width,
image.size.height);
这是行不通的。我尝试将每个维度减半,但它仍然关闭。
更新:我认为它在事后针对 Retina 显示器进行了缩放,因为在我使用的 Retina iPhone 4 和非 Retina 模拟器模式下,图像占用了相同的屏幕百分比。有什么方法可以将 UIImage 或 UIImageView 或项目设置为“视网膜就绪”?
更新 2:通过将每个维度减半来缩小图像似乎可行。 iPhone 4/4S 的像素是 2G/3G/3GS 的两倍。但这似乎是一个 hack 解决方案,我什至不确定我这样做时它是否利用了视网膜显示像素密度。
最佳答案
如果 UIImage 的大小大于 UIImageView 的大小,则使用:
if image.size > imageView.size
[self.imageView setContentMode:UIViewContentModeScaleAspectFit];
这将使您的图像保持比例,同时适合 ImageView ,
但是,如果 UIImage 的大小小于 UIImageView 的大小,则使用:
if image.size < imageView.size
self.imageView.contentMode = UIViewContentModeCenter;
它会让您的图像按比例和全尺寸保持在中心。
关于ios - iPhone编程: How do I make a UIImage in a UIImageView show at actual size?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782993/