UITraitEnvironment的文件说:
当当前特征集合更改时,将自动调用此方法。重写此方法为您提供了一种在与视图关联的特征集合发生更改时自定义行为的方法。如果不重写此方法,则不执行任何特殊行为。
但是当我旋转模拟器时,UIView子类中的这个方法不会被调用。
发布于 2015-08-19 00:06:29
只有UIView才能对旋转变化做出响应。您需要从其包含的视图控制器中重新配置当前方向/大小的视图。
如果你在iPad上,甚至在iOS 8上,特征集合不会因为旋转而改变;你仍然在H:正则,V:正则。您将需要重写:
func viewWillTransitionToSize(_ size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
响应视图控制器因旋转而发生的大小变化。(一定要打电话给超级!)
您可以通过比较大小的宽度与高度来推测视图控制器的“方向”(尽管现代iOS编程会鼓励您停止在方向方面的思考):
let isPortrait = size.height > size.width
https://stackoverflow.com/questions/27174666
复制相似问题