UI 过渡期间导航栏右侧出现故障(黑色闪烁)
UI glitch (black flicker) on right side of navbar during transition
我有一个应用程序有一个 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
我能够通过移除导航栏所有子视图上的动画来移除黑色 UI 故障。我认为问题出在正确的 UINavigationItem 上。
这是我使用的代码:
let subviews = (self.navigationController?.navigationBar.subviews as [UIView])
for subview: UIView in subviews {
subview.layer.removeAllAnimations()
}
我有一个应用程序有一个 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
我能够通过移除导航栏所有子视图上的动画来移除黑色 UI 故障。我认为问题出在正确的 UINavigationItem 上。 这是我使用的代码:
let subviews = (self.navigationController?.navigationBar.subviews as [UIView])
for subview: UIView in subviews {
subview.layer.removeAllAnimations()
}