我有一个应用程序,它有一个uipageviewcontroller,在应用程序的初始启动时显示。在uipageviewcontroller的最后一页,我向主导航控制器提供了TransitionCrossDissolve动画。 当动画正在进行中时,我在导航栏的右侧会出现一个小小的黑色背景闪烁,如下所示:
一开始我整个导航栏上都有黑色闪烁,但是在调用
之后override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.layer.removeAllAnimations()
}
问题几乎消失了。
在调用removeAllAnimations()之前,她是问题的GIF:
这是我如何在uipageviewcontroller的最后一页上调用动画:
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
UIView.transitionWithView(appDelegate.window!, duration: 0.5, options: UIViewAnimationOptions.TransitionCrossDissolve , animations: { () in
appDelegate.window!.rootViewController = appDelegate.mainNavigationController
}, completion: nil)
重要的是,我没有使用程序来移除导航栏底部的细线。这可能是所有这一切的原因吗?
价: How to hide iOS7 UINavigationBar 1px bottom line
我非常感谢有关此问题的任何反馈。
Brgds
答案 0 :(得分:2)
通过删除导航栏所有子视图上的动画,我能够删除黑色UI故障。我认为问题在于正确的UINavigationItem。 这是我使用的代码:
let subviews = (self.navigationController?.navigationBar.subviews as [UIView])
for subview: UIView in subviews {
subview.layer.removeAllAnimations()
}