gpt4 book ai didi

ios - 当设备方向改变时改变 ViewController?

转载 作者:行者123 更新时间:2023-11-28 06:41:40 24 4
gpt4 key购买 nike

我正在尝试弄清楚如何在方向改变时切换 VC。我在同一个 Storyboard中有 2 个不同的,portraitVC 和 landscapeVC。目标是在风景中发生本质上相同的事情,但使用不同的 UIImage。有人能帮忙吗?

逻辑应该是这样的:

if orientation is landscape {
use landscapeVC
} else {
Use portraitVC
}

最佳答案

好的,我不太确定您要实现的目标,但这里有两种可能的解决方案:

1。在旋转时更改 UIImageView 图像

您可以添加一个观察者,以便在设备改变方向时收到通知。

将此添加到您的 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)

2。在旋转时更改布局和 UI

这有点棘手,但一点也不难。您需要使用 Storyboard Size Classes。

Compact x Regular Size Class

检查上图的中下部分。看看上面写着 wCompact hRegular 的地方,这意味着您的设计适用于所有纵向的 iPhone。对于横向 iPhone,请使用 wAny hCompact。看到上图中的一些约束是如何被禁用的了吗?那是因为它们对特定尺寸类别无效。

Any x Compact Size Class

通过使用大小类,您不仅可以为纵向和横向自定义 UI,还可以为更具体的设备(iPhone 和 iPad)自定义 UI。您可以阅读有关此主题的更多信息 here .

希望对您有所帮助! :)

关于ios - 当设备方向改变时改变 ViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37816162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com