iPhone上的Swift图像缩放问题

时间:2016-03-20 10:48:09

标签: ios iphone swift uiimageview uiimage

我对swift相当新,并且在尝试缩放图像以适应屏幕的整个宽度时遇到了问题。由于图像的高度不同,我希望尽可能简单地将其宽度属性设置为屏幕宽度,并允许高度相应缩放(它的内在大小已设置为“Place Holder”)。我使用以下代码来缩放图像:

imgPrimaryImg.image = ImageHelper.loadImage(product.defaultImage)
imgPrimaryImg.contentMode = UIViewContentMode.ScaleAspectFit

问题在于使用ScaleAspectFit,有很多透明背景(为了清晰起见我将背景颜色设置为蓝色 - 如果它是透明的,问题仍然存在,我试过了)

Broken image design

无论如何我可以设置它以便不渲染背景的透明部分(或者至少不显示,因为它完全破坏了设计)

不确定它是否有用,但这是设置的其余部分

Storyboard setup

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

因此,经过进一步的研究,我设法找到了一个考虑到我的情况并设法解决问题的问题:

let aspectRatio = image.size.width / image.size.height
let newHeight = desiredWidth / aspectRatio

UIGraphicsBeginImageContext(CGSizeMake(desiredWidth, newHeight))
image.drawInRect(CGRectMake(0, 0, desiredWidth, newHeight))

let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

return scaledImage

并将当前屏幕宽度传递为“desiredWidth”(UIScreen.mainScreen()。bounds.width)。

原帖是Rescale image so width is half the size of screen,以防有人遇到同样的问题