Ios Swift 3-在横向模式下my UIViewController的背景图像问题

Ios Swift 3-在横向模式下my UIViewController的背景图像问题,ios,iphone,swift3,Ios,Iphone,Swift3,首先,这是以编程方式完成的,而不是在故事板中 我正在为UIViewController使用背景图像。它在纵向模式下看起来不错,但由于我的图像不够宽,不适合横向模式,因此当设备倾斜到横向模式时,图像会加倍(同一图像并排显示两次)。如果设备旋转到横向模式,是否有方法切换到不同的背景图像以避免此问题 请注意:我正在尝试这样做,而不必为横向模式创建一个全新的UIViewController override func viewDidLoad() { super.viewDidLoad()

首先,这是以编程方式完成的,而不是在故事板中

我正在为UIViewController使用背景图像。它在纵向模式下看起来不错,但由于我的图像不够宽,不适合横向模式,因此当设备倾斜到横向模式时,图像会加倍(同一图像并排显示两次)。如果设备旋转到横向模式,是否有方法切换到不同的背景图像以避免此问题

请注意:我正在尝试这样做,而不必为横向模式创建一个全新的UIViewController

override func viewDidLoad() {
    super.viewDidLoad()

    self.view.backgroundColor = UIColor(patternImage: UIImage(named: "backgroundimage.png")!)


    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.isTranslucent = true
    self.navigationController?.view.backgroundColor = UIColor.clear

    view.addSubview(inputsContainerView)
    view.addSubview(loginRegisterButton)
    view.addSubview(profileImageView)
    view.addSubview(loginRegisterSegmentedControl)

    setupInputsContainerView()
    setupLoginRegisterButton()
    setupProfileImageView()
    setupLoginRegisterSegmentedControl()
}

使用UIImageView设置背景图像,而不是使用UIColor(patternImage:)方法。请参阅下面的代码片段

var backgroundImageView: UIImageView!

  override func viewDidLoad() {
    super.viewDidLoad()

    backgroundImageView = UIImageView(frame: CGRect(x: self.view.frame.origin.x, y: self.view.frame.origin.y, width: self.view.frame.width, height: self.view.frame.height))
    backgroundImageView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    view.addSubview(backgroundImageView)
  }

我已经创建了一个backgroundImageView并将图像设置为该视图。为了处理纵向和横向模式,还设置了autoresizingMask参数

不要将图像用作“图案”。添加
UIImageView
。。。设置约束以将其固定到所有四边。。。将内容模式设置为Fill、AspectFill、ApectFit、Center等。。。无论什么都能给你带来满意的外观。是的,正如@DonMag所说,使用
UIImageView
。您还可以检查
方向
,查看
模式是
横向
还是
纵向