【发布时间】:2016-05-03 19:21:46
【问题描述】:
我正在尝试做的是使用 CATransitions 使用自定义动画从左侧推入。在我的正常代码中,我想使用0.3 的持续时间,但在下面的示例中,我使用6.0,这样我就可以在过渡期间看到实际问题。
而且很明显,在转换到新视图时会出现淡入淡出。进来的新视图从它的背景颜色淡化到实际视图,而从屏幕滑出的视图从实际视图淡化到它的背景颜色。在进行推送动画进行过渡时,它会产生一些奇怪的外观。
以下是我用于转换的代码。 settingsController 是我要制作动画的控制器。
let transition = CATransition()
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.duration = 6.0
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromLeft
self.navigationController?.view.layer.addAnimation(transition, forKey: nil)
UIView.transitionFromView(self.view, toView: settingsViewController.view, duration: 0, options: UIViewAnimationOptions.TransitionNone, completion: nil)
self.navigationController?.pushViewController(settingsViewController, animated: false)
如前所述,实际的滑动动画按我的意愿工作,但是会发生这种淡入淡出,使它看起来不正确。我一直在搜索 google 和 stackoverflow 并没有看到发布的解决方案,所以我想知道是否有人知道如何摆脱这种褪色,或者即使有一种解决方法可以“模拟”这种行为,所以用户体验看起来如我所愿。
我已经尝试让两个视图的背景颜色相同,但看起来仍然不正确。
【问题讨论】:
标签: ios swift animation uinavigationcontroller