使用动画过渡时,UITabBar会显示黑屏。 (swift)
问题描述:
我正在制作iOS UITabBar应用程序,并尝试使用动画过渡。但是有一些错误。使用动画过渡更改视图时,我的应用程序显示黑色空白视图。使用动画过渡时,UITabBar会显示黑屏。 (swift)
我的一些代码
类的TransitionManager
...
func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
let container = transitionContext.containerView()
let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey)!
let toView = transitionContext.viewForKey(UITransitionContextToViewKey)!
let offScreenRight = CGAffineTransformMakeTranslation(container.frame.width, 0)
let offScreenLeft = CGAffineTransformMakeTranslation(-container.frame.width, 0)
toView.transform = offScreenRight
container.addSubview(toView)
container.addSubview(fromView)
let duration = self.transitionDuration(transitionContext)
UIView.animateWithDuration(duration, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.8, options: nil, animations: {
fromView.transform = offScreenLeft
toView.transform = CGAffineTransformIdentity
}, completion: { finished in
transitionContext.completeTransition(true)
})
}
...
的UITabBarController
func tabBarController(tabBarController: UITabBarController, animationControllerForTransitionFromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
var animatedTransitioningObject = TransitionManager()
return animatedTransitioningObject
}
我会尝试添加该代码,当过渡完成
}, completion: { finished in
transitionContext.completeTransition(true)
// add this line
UIApplication.sharedApplication().keyWindow!.addSubview(toView)
})
现在我的第二个视图正确显示,但我的tabbar消失了! 我试图调试视图层次结构。看起来我的标签栏并没有消失。但是它带来了第二种观点。
如何解决这个问题?
ps。对不起,我的英语不好。
答
如果只发生在动画过程中,请尝试禁用UITabBar半透明。在将我的设备更新到9.0后,我发现与自定义动画类似的行为,最终成为我的根本问题。
你解决了吗? –