是否有像 didRotateFromInterfaceOrientation 这样的方法发生在 Swift 的旋转过程中?
Is there a method like didRotateFromInterfaceOrientation which happens during rotation in Swift?
我正在尝试在旋转设备时对 UIActivityIndicator 进行 .StartAnimating,我正在尝试使用覆盖功能:didRotateFromInterfaceOrientation;然而,这个函数在旋转发生后被调用,我想在实际旋转期间制作动画。
我正在寻找一种在旋转时调用的方法。我查阅了文献,发现只有贬值的功能可能有用。
目前有什么方法可以用于此目的吗?
只需使用此代码片段检查方向变化
Swift 1.x/2.x
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
if UIDevice.currentDevice().orientation.isLandscape.boolValue {
print("Landscape")
} else {
print("Portrait")
}
}
Swift 3.x
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
if UIDevice.current.orientation.isLandscape {
print("Landscape")
} else {
print("Portrait")
}
}
我也能用这个:
override func willAnimateRotationToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
self.activityIndicator.startAnimating()
}
本质上,它允许在旋转期间使用视图。在我的例子中,当检测到旋转时,我的 UIActivityIndicator 开始动画。然后是此代码:
override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) {
print("Rotation did occur.")
// my code entries.
// my code entries..
// my code entries...
self.activityIndicator.stopAnimating()
}
在方向转换结束时,activity 指示器停止动画,并且由于我在属性检查器中勾选了“停止时隐藏”选项,它随后消失了。
试试这个代码,
Swift 3.x
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if UIDevice.current.orientation.isLandscape {
print("Landscape")
} else {
print("Portrait")
}
coordinator.animate(alongsideTransition: { _ in
// Execute before rotation
}) { _ in
//Execute after rotation
}
}
我正在尝试在旋转设备时对 UIActivityIndicator 进行 .StartAnimating,我正在尝试使用覆盖功能:didRotateFromInterfaceOrientation;然而,这个函数在旋转发生后被调用,我想在实际旋转期间制作动画。
我正在寻找一种在旋转时调用的方法。我查阅了文献,发现只有贬值的功能可能有用。
目前有什么方法可以用于此目的吗?
只需使用此代码片段检查方向变化
Swift 1.x/2.x
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
if UIDevice.currentDevice().orientation.isLandscape.boolValue {
print("Landscape")
} else {
print("Portrait")
}
}
Swift 3.x
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
if UIDevice.current.orientation.isLandscape {
print("Landscape")
} else {
print("Portrait")
}
}
我也能用这个:
override func willAnimateRotationToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
self.activityIndicator.startAnimating()
}
本质上,它允许在旋转期间使用视图。在我的例子中,当检测到旋转时,我的 UIActivityIndicator 开始动画。然后是此代码:
override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) {
print("Rotation did occur.")
// my code entries.
// my code entries..
// my code entries...
self.activityIndicator.stopAnimating()
}
在方向转换结束时,activity 指示器停止动画,并且由于我在属性检查器中勾选了“停止时隐藏”选项,它随后消失了。
试试这个代码,
Swift 3.x
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if UIDevice.current.orientation.isLandscape {
print("Landscape")
} else {
print("Portrait")
}
coordinator.animate(alongsideTransition: { _ in
// Execute before rotation
}) { _ in
//Execute after rotation
}
}