【发布时间】:2015-12-03 02:12:30
【问题描述】:
我正在制作 iOS UITabBar 应用程序,并尝试使用动画过渡。但是有一点不对劲。当使用动画过渡更改视图时,我的应用显示黑色空白视图。
我的一些代码
类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)
})
现在我的第二个视图显示正确,但我的标签栏消失了! 我正在尝试调试视图层次结构。看来我的标签栏没有消失。但它带来了第二个观点。
如何解决这个问题?
ps。对不起我的英语不好。
【问题讨论】: