我试图弄清楚当方向改变时如何切换VC。我在同一故事板上有2个不同的头像,即portraitVC和landscapeVC。目标是在景观中发生本质上相同的事情,但使用不同的UIImage。有人有帮助吗?
逻辑应类似于:
if orientation is landscape {
use landscapeVC
} else {
Use portraitVC
}
好的,我不太确定您要实现的目标,但是有两种可能的解决方案:
您可以添加观察者,以在设备改变方向时得到通知。
将此添加到您的viewDidLoad()中:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(didRotate), name: UIDeviceOrientationDidChangeNotification, object: nil)
方向更改时,将调用以下函数:
func didRotate(notification: NSNotification) {
if UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation) {
// Change UIImageView image here
}
if UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation) {
// Change UIImageView image here
}
}
您可以使用此代码将图像更改为纵向或横向。哦!并且不要忘记在viewWillDisappear()中删除观察者:
NSNotificationCenter.defaultCenter().removeObserver(self)
这有点棘手,但一点也不困难。您需要使用情节提要板大小类。
检出上图的中下部。看到wCompact hRegular的字样,这意味着您要为所有iPhone纵向设计。对于横向iPhone,请使用wAny hCompact。看看上图中的某些约束是如何禁用的?这是因为它们对特定的尺寸类别无效。
通过使用大小类,您不仅可以针对纵向和横向自定义UI,还可以针对更特定的设备(iPhone和iPad)自定义UI。您可以在此处阅读有关此主题的更多信息。
我希望这有帮助!:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句