我正在尝试检测iOS设备上的方向变化。我以为这样做很简单,但实际上却行不通...
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
print("Will Transition to size \(size) from super view size \(self.view.frame.size)")
if (size.width > self.view.frame.size.width) {
print("Landscape")
} else {
print("Portrait")
}
if (size.width != self.view.frame.size.width) {
// Reload TableView to update cell's constraints.
// Ensuring no dequeued cells have old constraints.
}
}
上面是我在stackoverflow上找到的代码。 viewWillTransition没有被调用。我注意到帖子坚持要使它工作才能使用super,但是没有,因为您可以看到有一个super并且它仍然不起作用。
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
}
下一次修复它时,什么也没做。
帮助?
答案 0 :(得分:0)
使用自定义容器视图?
如果您已将子viewController的视图作为子视图添加到父viewController的视图,则必须在父viewController上调用.addChild(_:)
方法以在两个视图控制器之间创建父子关系。
答案 1 :(得分:-1)
我认为这会有所帮助:-
如果UIDevice.currentDevice()。orientation == UIDeviceOrientation.LandscapeLeft {
print(“ Anything”)
} 否则,如果UIDevice.currentDevice()。orientation == UIDeviceOrientation.LandscapeRight {
print(“ Anything”)
} 否则,如果UIDevice.currentDevice()。orientation == UIDeviceOrientation.UIDeviceOrientationPortraitUpsideDown {
print(“ Anything”)
} 否则,如果UIDevice.currentDevice()。orientation == UIDeviceOrientation.UIDeviceOrientationPortrait {
print(“ Anything”)
}