我有两个动作。
我要执行第一个动作,然后再调用第二个动作。如果我添加这样的操作:
func actions {
action1()
action2()
}
但我的代码和操作是同时实现的。
我首先执行此代码:
let pageController = self.storyboard?.instantiateViewController(withIdentifier: "PageViewController") as! UIPageViewController
pageController.dataSource = self
pageController.delegate = self
firstPage = 0
secondPage = 1
guard let firstController = getContentViewController(withIndex: firstPage) else { return }
guard let secondController = getContentViewController(withIndex: secondPage) else { return }
pageViewController?.setViewControllers([firstController, secondController], direction: .reverse, animated: true, completion: nil)
这是一个翻转动画。
如果我使用此
func actions {
action1()
action2()
}
我的翻转动画将无法显示。
也许我需要使用计时器?
答案 0 :(得分:1)
您可以在每个函数上包括回调,这样一旦函数操作完成,它们就会调用其他函数。例如:
创建回调函数
func action1(complete: @escaping (_ status: Bool) {
// animation operation
// Notify callback
complete(true)
}
如何使用回调函数
action1(complete: { (animationCompleted)
if animationCompleted {
// Invoke second animation function
// Remember use `self` instance once your inside a callback method
self.action2()
}
})