我有一个PageViewController,它正在作为子视图添加。
控制器本身工作正常,但我正在尝试实现淡入淡出。因此,我将其添加到每个PageViewController页面/视图控制器中:
override func viewDidLoad() {
super.viewDidLoad()
self.view.alpha = 0
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UIView.animate(withDuration: 0.25, delay: 0.15, options: .curveEaseIn, animations: {
self.view.alpha = 1
})
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIView.animate(withDuration: 0.25, delay: 0.15, options: .curveEaseIn, animations: {
self.view.alpha = 0
})
}
对于PageViewController内部的 first 视图控制器,以上动画都不起作用。对于第二个-最后一个视图控制器,仅viewDidAppear()
动画有效。
如何使所有vc的所有动画都能正常工作?
这就是我将PageViewController添加到其父级的方法:
override func viewDidAppear(_ animated: Bool) {
if showTutorial == true {
let controller = storyboard!.instantiateViewController(withIdentifier: "tutorial")
addChild(controller)
controller.view.frame = view.frame
view.addSubview(controller.view)
controller.didMove(toParent: self)
}
}
答案 0 :(得分:0)
我认为,因为视图控制器已添加到页面控制器中,所以可能不会像通常认为的那样调用viewDidAppear / viewDidDisappear方法。在其中放置打印语句,以查看是否
如果没有,我将调查页面控制器委托,并从中获得回调,表明页面已更改,请相应地运行动画