iOS Swift在iPad上更改图像的方向

时间:2018-12-03 14:39:48

标签: ios swift ipad interface-builder screen-orientation

我有一个iOS应用程序,应同时在纵向和横向模式下运行。问题是我有一个应该在每个方向上更改的图像,即肖像图像与风景图像不同。

我已经在Interface Builder的iPhone屏幕上成功实现了此功能。但是对于iPad,问题在于iPad的大小类始终是Regular widthRegular Height。因此,我无法与Interface Builder.

进行区分

所以,我以编程方式实现了它:

NotificationCenter.default.addObserver(forName: UIDevice.orientationDidChangeNotification,
                                           object: nil,
                                           queue: .main,
                                           using: { notification in
                                            //change image for iPad here
    })

然后调用调用检查方向并在加载视图时设置图像的方法,以便它设置正确的图像。

现在的问题是,如果从viewDidLoad调用此方法,由于尚未创建UIImageView,因此它不会更改其图像。从viewDidAppear调用时,它可以正确更改图像,但是此更改会反映在视图上,并且用户可以在更改时看到它。

我的问题是: 是否有任何方法可以根据iPad中的尺寸类别为Interface Builder设置图像?

如果没有,我该如何解决以编程方式进行实时图像更改的问题?

1 个答案:

答案 0 :(得分:1)

由于iPad上的尺寸类别不会更改,因此可以使用设备方向

SWIFT 4

if UIDevice.current.userInterfaceIdiom == .pad &&
   UIDevice.current.orientation.isPortrait {
      // do something here
   }