UIImageView AspectFill失败

时间:2016-07-10 21:38:39

标签: ios uiimageview calayer

我以编程方式渲染16:9像素图像,然后使用UIImageView kCAFilterNearest滤镜和.ScaleAspectFill内容模式将其显示为背景图像。我得到的结果是:

enter image description here

在图片上你可以看到,无论出于何种原因,它都会将图片精确地缩放,但稍微向上移动(比如半像素),并在底部留下一条线,属于{{1}图像显示在(这是UIImageView上的唯一视图,其背景颜色为“海军”)。

考虑到我对UIViewController使用UIScreen.mainScreen().bounds矩形,可能是背后的原因?

P.S。 UIImageView内容模式提供了相同的结果(底部的行保留)

1 个答案:

答案 0 :(得分:0)

我使用一个函数调整图像大小以适应屏幕

fnc imageResize (imageObj:UIImage, sizeChange:CGSize)-> UIImage{

   let hasAlpha = false
   let scale: CGFloat = 0.0 // Automatically use scale factor of main screen

   UIGraphicsBeginImageCOntextWithOptions(sizeChange, !hasAlpha, scale)
   imageObj.drawInRect(CGRect(origin: CGPointZero, size : sizeChange))

   let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
   retunr scaledImage
}

并致电

let mainScreenSize: CGRect = UIScreen.mainScreen().bounds
let image: UIImage! = self.imageResize(UIImage(named: "IMAGE_NAME")!, sizeChange: CGSizeMake(mainScreenSize.width, mainScreenSize.height))

我使用的初始图像也是16:9比率