Я пытаюсь оживить между двумя видами в полноэкранном режиме (тот же контроллер вида) в быстром использовании с помощью CATransition. Глядя на то, чтобы реплицировать (или приблизиться к) навигационный контроллер, нажать переход. Запуск в проблему, когда view2 (новое представление для представления) скользит правильно, но view1 (вид снизу) исчезает. В принципе, анимированное представление скользит по белому экрану, но я хочу, чтобы он переместился по предыдущему экрану.Swift CATransition Между двумя видами - Слайд-эффект предыдущий экран становится белым
var pushAnimationEffect = CATransition()
override func viewDidLoad() {
super.viewDidLoad()
pageToUIView[i] = UIView()
view1.frame = CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height)
view1.center = CGPointMake(screenSize.width/2, screenSize.height/2)
view2.frame = CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height)
view2.center = CGPointMake(screenSize.width/2, screenSize.height/2)
view1.layer.addAnimation(pushAnimationEffect, forKey: nil)
view2.layer.addAnimation(pushAnimationEffect, forKey: nil)
self.view.addSubview(view1)
pushAnimationEffect.delegate = self
pushAnimationEffect.duration = 0.4
pushAnimationEffect.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
}
func nextPage() {
pushAnimationEffect.type = kCATransitionMoveIn
pushAnimationEffect.subtype = kCATransitionFromRight
self.view.addSubview(view2)
view1.removeFromSuperview()
}
func prevPage() {
pushAnimationEffect.type = kCATransitionMoveIn
pushAnimationEffect.subtype = kCATransitionFromLeft
self.view.addSubview(view1)
view2.removeFromSuperview()
}
Упрощенный код, чтобы его было легче читать.
Есть ли лучший способ сделать это? Что-то не так с кодом?