2つのビューコントローラをスクロールビューに追加し、両方のビューコントローラでアニメーションを作成しましたが、これらのアニメーションは、VCが表示されているときにのみ呼び出す必要があります。代わりに、最初のVCが表示されているときに両方のアニメーションが実行されています。スクロールビューにビューコントローラを追加するにはどうすればよいですか?スクロールビューがそのVCを表示しているときにのみ、ビューコントローラをインスタンス化するだけですか?
func setUpScrollView() {
for i in 0..<2 {
let vc = NewViewController()
self.addChildViewController(vc)
scrollView.addSubview(vc.view)
vc.didMove(toParentViewController: self)
var frame: CGRect = vc.view.frame
frame.origin.x = self.view.frame.width * CGFloat(i)
vc.view.frame = frame
self.scrollView.contentSize = CGSize(width: self.view.frame.width * CGFloat(2), height: self.view.frame.size.height)
}
}
NewViewControllerあなたはそれが可視領域内にあるかどうかをすぐにviewDidAppear
を起動しますスクロールビューのコンテンツ領域に置くものは何でも
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("calling animation") //this is called twice immediatley after for loop, but only shows one vc.
}