如何延迟或减慢视图控制器之间的转换?
How to I delay or slow down transition between view controllers?
所以我在屏幕上有一个按钮,它通过带有推式赛格威的故事板连接。我按下按钮,它会转到下一个视图控制器。
如果我想通过 1-2 秒来减慢转换速度,我该怎么做?
您可以在延迟后使用 performSegueWithIdentifier 方法的第一个视图控制器中创建一个方法。
然后将视图控制器上的按钮连接到该方法。
代码示例:
故事板
这里我有一个初始视图控制器,带有一个到第二个视图控制器的手动 segue。
我已将 Fire Method 按钮连接到初始视图控制器上的 IBAction,代码如下:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// This method is connected to the Fire Method button
@IBAction func fireMethodBttnTouched(sender: AnyObject) {
let delay = 1 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue()) { () -> Void in
self.performSegueWithIdentifier("showSecondViewController", sender: self)
}
}
}
您可以根据需要调整延迟常数。
所以我在屏幕上有一个按钮,它通过带有推式赛格威的故事板连接。我按下按钮,它会转到下一个视图控制器。
如果我想通过 1-2 秒来减慢转换速度,我该怎么做?
您可以在延迟后使用 performSegueWithIdentifier 方法的第一个视图控制器中创建一个方法。
然后将视图控制器上的按钮连接到该方法。
代码示例:
故事板
这里我有一个初始视图控制器,带有一个到第二个视图控制器的手动 segue。
我已将 Fire Method 按钮连接到初始视图控制器上的 IBAction,代码如下:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// This method is connected to the Fire Method button
@IBAction func fireMethodBttnTouched(sender: AnyObject) {
let delay = 1 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue()) { () -> Void in
self.performSegueWithIdentifier("showSecondViewController", sender: self)
}
}
}
您可以根据需要调整延迟常数。