有没有像 didRotateFromInterfaceOrientation 这样的方法在 Swift 的旋转过程中发生?

Posted

技术标签:

【中文标题】有没有像 didRotateFromInterfaceOrientation 这样的方法在 Swift 的旋转过程中发生?【英文标题】:Is there a method like didRotateFromInterfaceOrientation which happens during rotation in Swift? 【发布时间】:2015-12-26 00:38:35 【问题描述】:

我试图在旋转设备时启动 UIActivityIndi​​cator 动画,我试图使用覆盖函数: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")
    

【讨论】:

这似乎像我想要的那样开始 UIActivityIndi​​cator,但我似乎失去了 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()
    

本质上,它允许在旋转期间使用视图。就我而言,当检测到旋转时,我的 UIActivityIndi​​cator 开始制作动画。然后是这段代码:

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函数来进行正方形检测?

UIGestureRecognizer 状态。为啥没有像“空闲”这样的状态?

有没有像 DBus 那样具有信号功能的 RPC 框架?

有没有可以像 Telnet 一样使用的 REST api

android上有没有像fiddler或wireshark这样的http代理?