【发布时间】:2019-09-17 11:45:04
【问题描述】:
我正在制作一个简单的单页 ios 应用程序的原型。当设备方向从纵向切换到横向时,我试图让背景在两个图像之间交换。 '''
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
UIGraphicsBeginImageContext(self.view.frame.size)
switch UIDevice.current.orientation{
case .portrait:
UIImage(named: "img_001")?.draw(in: self.view.bounds)
case .portraitUpsideDown:
UIImage(named: "img_001")?.draw(in: self.view.bounds)
case .landscapeLeft:
UIImage(named: "img_002")?.draw(in: self.view.bounds)
case .landscapeRight:
UIImage(named: "img_002")?.draw(in: self.view.bounds)
default:
break
}
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
self.view.backgroundColor = UIColor(patternImage: image)
}
'''
当设备翻转时背景会发生变化,但图像平铺在显示屏上,而它需要是一个充满屏幕的图像。
【问题讨论】:
-
使用
UIImageView而不是设置backgroundColor。这样,您无需考虑调整图像大小以适应屏幕。只需使用contentMode = .aspectFill。