ios - iPhone编程: How do I make a UIImage in a UIImageView show at actual size?

标签 ios iphone uiimageview uiimage cgrectmake

我有一个 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/

相关文章:

ios - iOS 13 中与历史相关的 Contacts 框架类有哪些?

ios - 字典数组 : Add values if find identical in to single dictionary Swift

ios - 如何在 iOS 中将 PNG 图像转换为 CMYK?

ios - 非空数组,访问第一个元素 : index out of range (Swift 2. 0)

iphone - 带有自定义layoutSubviews的UIScrollView不再有动画

iphone - ScrollView 在单击按钮时上下滚动

iphone - NSURLConnection 和中央调度

ios - 更新后无法构建我的 iOS 应用程序

iphone - 拥有多个具有不同触摸的移动 UIImage View

iOS加入多张图片