有没有像 didRotateFromInterfaceOrientation 这样的方法在 Swift 的旋转过程中发生?
Posted
技术标签:
【中文标题】有没有像 didRotateFromInterfaceOrientation 这样的方法在 Swift 的旋转过程中发生?【英文标题】:Is there a method like didRotateFromInterfaceOrientation which happens during rotation in Swift? 【发布时间】:2015-12-26 00:38:35 【问题描述】:我试图在旋转设备时启动 UIActivityIndicator 动画,我试图使用覆盖函数:didRotateFromInterfaceOrientation;但是,这个函数是在旋转发生后调用的,我想在实际旋转期间制作动画。
我正在寻找一种在旋转时调用的方法。我翻阅了文献,发现只有折旧的函数可能有用。
目前有什么方法可以用来做这个吗?
【问题讨论】:
【参考方案1】:只需使用此代码 sn-p 即可检查方向变化 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")
【讨论】:
这似乎像我想要的那样开始 UIActivityIndicator,但我似乎失去了 didRotateFromInterfaceOrientation 的功能。 我不知道这是否可能。为了即时识别设备方向变化,您只需要自己监控加速度计。【参考方案2】:试试这个代码,
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
【讨论】:
【参考方案3】:我也能用这个:
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()
在方向转换结束时,活动指示器停止动画,并且由于我在属性检查器中勾选了“停止时隐藏”选项,然后它就消失了。
【讨论】:
以上是关于有没有像 didRotateFromInterfaceOrientation 这样的方法在 Swift 的旋转过程中发生?的主要内容,如果未能解决你的问题,请参考以下文章
有没有像“cvHoughCircles()”这样的opencv函数来进行正方形检测?