我需要在导航栏下方显示一个类似状态栏的薄视图,该视图滑入视图并在发生某些操作时滑回视线之前保持可见几秒钟。
对于任何给定的视图控制器,我可以很容易地做到这一点,方法是在需要出现/消失时适当地为其框架设置动画。
但是我有几个不同的视图控制器,我不想复制相同的代码来管理每个控制器中栏的外观。除了代码重复之外,我怀疑如果在更改控制器时该栏当前是可见的,则在控制器之间导航时会出现闪烁。
有哪些方法可以解决这个问题?
我需要在导航栏下方显示一个类似状态栏的薄视图,该视图滑入视图并在发生某些操作时滑回视线之前保持可见几秒钟。
对于任何给定的视图控制器,我可以很容易地做到这一点,方法是在需要出现/消失时适当地为其框架设置动画。
但是我有几个不同的视图控制器,我不想复制相同的代码来管理每个控制器中栏的外观。除了代码重复之外,我怀疑如果在更改控制器时该栏当前是可见的,则在控制器之间导航时会出现闪烁。
有哪些方法可以解决这个问题?
在您的 appDelegate 中创建一个方法以将您的自定义视图添加到主窗口。这样,每当您触发显示自定义视图方法时,它将位于视图层次结构的顶部。
需要注意的一件事是,如果您的应用程序更改了方向,您必须为自定义视图手动更改它。
只需将其UIView
在层次结构中向上移动即可。例如,将它放在您UINavigationController
的 'ssuperview
中,这样它将显示在 UINavigationController 的视图上方。
您可能需要将它放在前面,并可能UIView
使用convertRect:toView:或类似的东西来转换这个“类似状态栏”的框架。