Ios 设备旋转时切换视图控制器
我有两个视图控制器;一个用于风景,另一个用于肖像。 当设备旋转时,如何像本机iPhone计算器一样以编程方式切换这些选项 此外,纵向和横向视图控制器在xcode和swift中也各不相同Ios 设备旋转时切换视图控制器,ios,xcode,swift,uiviewcontroller,Ios,Xcode,Swift,Uiviewcontroller,我有两个视图控制器;一个用于风景,另一个用于肖像。 当设备旋转时,如何像本机iPhone计算器一样以编程方式切换这些选项 此外,纵向和横向视图控制器在xcode和swift中也各不相同 如果有任何帮助,我们将不胜感激。您不需要为这些应用程序使用不同的UIViewController。您只需覆盖UIViewController的某些方法,以便在设备方向更改时修改UI 您可以点击以下链接: 处理这类事情的现代方法是拥有一个可适应不同尺寸的控制器,不仅可以处理各种可能的屏幕尺寸,还可以处理iPad的
如果有任何帮助,我们将不胜感激。您不需要为这些应用程序使用不同的UIViewController。您只需覆盖UIViewController的某些方法,以便在设备方向更改时修改UI 您可以点击以下链接:
处理这类事情的现代方法是拥有一个可适应不同尺寸的控制器,不仅可以处理各种可能的屏幕尺寸,还可以处理iPad的滑动和分视图多任务处理。您应该对UI进行重大更改的地方(如计算器示例)是按大小分类差异,如下所述: 默认情况下,Interface Builder中的情节提要使用大小类。大小类是指定给用户界面元素(如场景或视图)的特征。它们提供了元素大小的粗略指示。Interface Builder允许您根据当前大小类自定义许多布局的功能。然后,布局会随着尺寸类别的更改而自动调整。具体而言,您可以根据每个尺寸类别设置以下功能:
- 安装或卸载视图或控件
- 安装或卸载约束
- 设置“选择”属性的值(例如,字体和版面边距设置)
lazy var switchViewController: UIViewController? = {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "SwitchViewController")
vc?.modalTransitionStyle = .crossDissolve
return vc
}()
override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animate(alongsideTransition: { (_) in
let orientation = newCollection.verticalSizeClass
switch orientation {
case .compact:
self.present(self.switchViewController!, animated: true, completion: .none)
default:
self.switchViewController!.dismiss(animated: true, completion: .none)
}
}, completion: .none)
super.willTransition(to: newCollection, with: coordinator)
}
您不必在旋转时更改viewController,您可以使用size类并在旋转更改时修改UIViewController的UI。此外,纵向和横向视图控制器彼此不同“新建编辑”最佳和有用的答案