我正在编写一个图形应用程序 - 横向将内容定位在肖像的坐标系中。我的viewController检测方向变化的最简单方法是什么?
编辑我知道2014年9月有一个类似的问题,但解决方案似乎是特定于代码的 - 有人可以澄清检测轮换的最简单方法可能是什么? (代码解释也不错)
(为了清楚起见,这里引用的解决方案:)
在" didFinishLaunchingWithOptions"中的AppDelegate.swift中:
`NSNotificationCenter.defaultCenter().addObserver(self, selector: "rotated", name: UIDeviceOrientationDidChangeNotification, object: nil)`
AppDelegate类中的:
func rotated()
{
if(UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation))
{
println("landscape")
}
if(UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation))
{
println("Portrait")
}
}
答案 0 :(得分:0)
这是我发现对旋转作出反应的最简单的方式,对于大多数人来说这应该是一个简单的实现 - 被覆盖的函数被称为“视图的框架改变并且其子视图因此重新被调用布局“(信用:斯坦福CS193p幻灯片)
viewController中的(将旋转的视图):
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
// code to handle rotation details
}
答案 1 :(得分:0)
此方法存在问题。如果您在主视图中添加了许多子视图,则会多次调用此函数。
我认为最好的方法是:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
// Your Processing
}
此外,您还有参数可以帮助您进行处理。