我有一个全屏 UIView
。当我旋转手机时, View 会缩小一点(您会看到黑色背景),然后再次扩展为全屏。它基本上按预期动画。
屏幕上的其他 View 也会相应地进行动画处理。
我可以防止这种情况发生在一个特定的 View 中吗? 我希望全屏 View 保持全屏状态而没有动画显示黑色背景,但保持其他 View 为其旋转设置动画。
有点像 Apple 在相机应用中的做法。 “取景器”不会为其旋转设置动画,但按钮可以。
我的 ViewController
中有以下代码。 liveView
就是提到的全屏UIView
。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animateAlongsideTransition(in: self.liveView, animation: { (context) in
if let connection = (self.liveView.layer as! AVCaptureVideoPreviewLayer).connection {
connection.videoOrientation = AVCaptureVideoOrientation(ui: UIApplication.shared.statusBarOrientation)
}
}, completion: nil)
}
AVCaptureVideoOrentation
是一个扩展,它基本上使用 switch
语句将 UIInterfaceOrientation
转换为 AVCaptureVideoOrientation
。
谢谢 - 约瑟夫
你试过self.liveView.layer.removeAllAnimations()
:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animateAlongsideTransition(in: self.liveView, animation: { (context) in
if let connection = (self.liveView.layer as! AVCaptureVideoPreviewLayer).connection {
connection.videoOrientation = AVCaptureVideoOrientation(ui: UIApplication.shared.statusBarOrientation)
}
self.liveView.layer.removeAllAnimations()
}, completion: nil)
}
关于ios - 防止在一个特定的 UIView 旋转时出现动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39062731/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |