我以编程方式渲染16:9像素图像,然后使用UIImageView
kCAFilterNearest
滤镜和.ScaleAspectFill
内容模式将其显示为背景图像。我得到的结果是:
在图片上你可以看到,无论出于何种原因,它都会将图片精确地缩放,但稍微向上移动(比如半像素),并在底部留下一条线,属于{{1}图像显示在(这是UIImageView
上的唯一视图,其背景颜色为“海军”)。
考虑到我对UIViewController
使用UIScreen.mainScreen().bounds
矩形,可能是背后的原因?
P.S。 UIImageView
内容模式提供了相同的结果(底部的行保留)
答案 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比率