NavigationBar 和StatusBar同时消失出现

NavigationBar和StatusBar都有支持动画的系统接口:

[[UIApplication sharedApplication] setStatusBarHidden:hidden withAnimation:UIStatusBarAnimationSlide];
[self.navigationController setNavigationBarHidden:hidden animated:animated];

但是简单这样写的话,效果不太好,NavigationBar 和StatusBar消失的时候,动画太快;出现的时候,StatusBar先出现,NavigationBar后滑出,而且动画比较突兀。

以下代码能让NavigationBar 和StatusBar同时消失出现,而且比较平滑 :

- (void)toggleStatusBarAndNavBar:(BOOL)hidden {
    UINavigationBar *navBar = self.navigationController.navigationBar;
    [[UIApplication sharedApplication] setStatusBarHidden:hidden withAnimation:UIStatusBarAnimationSlide];

    [UIView animateWithDuration:0.35 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
        // 先显示navigationBar
        if (!hidden)
        {
            [self.navigationController setNavigationBarHidden:hidden animated:NO];
        }

        navBar.frame = CGRectMake(navBar.frame.origin.x,
                                  hidden ? -navBar.frame.size.height : 20,
                                  navBar.frame.size.width,
                                  navBar.frame.size.height);
    } completion:^(BOOL finished) {
        if (hidden)
        {
            [self.navigationController setNavigationBarHidden:hidden animated:NO];
        }
    }];
}
  • StatusBar的动画风格选滑入UIStatusBarAnimationSlide,手动为NavigationBar的滑出滑入做动画。
  • 动画风格选UIViewAnimationOptionCurveEaseOut,因为消失的时候StatusBar消失比较快,NavigationBar也需要快点消失;出现的时候NavigationBar需要慢点,动画看起来比较流畅
  • 要把握好hidden属性和frame的变化动画先后关系。
时间: 2024-10-01 12:17:12

NavigationBar 和StatusBar同时消失出现的相关文章

android 导航栏呼出和去掉listview重载问题

问题描述 android 导航栏呼出和去掉listview重载问题 2C 在一个activity里面底部放了一个layout居于父窗口的bottom,最上面也是一个layout居于父窗口最上面两个layout高度均为50dp,其余部分放置了一个mach-parent的listview,现在导航栏手动都掉和手动呼出的时候listview都会重在,并且item中放置的是imageview,请求各位大神支招!!!!! 解决方案 http://www.2cto.com/kf/201505/399678.

statusbar控件上加载进度条控件,怎么在按钮和进度条间切换呢?

问题描述 statusbar控件上加载进度条控件,怎么在按钮和进度条间切换呢? statusbar控件上加载进度条控件,当加载完成,进度条消失,显示按钮,再次加载的时候隐藏按钮显示进度条,怎么在按钮和进度条间切换呢? 解决方案 你可以定义两个panel,分别加载按钮和进度条,需要哪个就显示哪个. 解决方案二: 进度条控件 解决方案三: 按钮和进度条你肯定都能访问到,通过设置visible控制

MathType小符号栏消失了怎么恢复

  MathTye小符号栏界面示例: MathTye小符号栏界面示例 小符号栏消失后示例: MathTye小符号栏消失后界面示例 具体操作方法如下: 1.打开MathType公式编辑器,不管是从Word中打开,还是双击MathType桌面图标打开都可以,对后面的操作没有影响. 2.在MathType编辑窗口中,将鼠标移到到MathType菜单栏中,点击"视图"--"小符号栏",在没点击之前你会发现小符号栏前面是没有勾的. 点击"视图"--&quo

Word中MathType菜单消失该怎么找回来?

  在使用MathType编辑公式时,有许多朋友都会对MathType出现的一些问题无法解决,比如Word中MathType菜单项突然消失了,如何才能找回来? 1.先卸载MathType再重新安装MathType,MathType会在相应office surpport目录下添加WordCmds.dot,MathType Commands 6 For Word.dot,MathPage目录下添加"32"文件夹中(或者"64"具体看自己电脑的安装情况)MathPage.

找回Win8开始界面消失的“桌面”磁贴

  Windows 8开始屏幕上有很多功能丰富色彩各异的磁贴,其中"桌面"磁贴会显示当前的Windows传统桌面壁纸,点击它就可以切换到我们熟悉的Windows传统 桌面.如果有的朋友发现Win8开始屏幕中的"桌面"磁贴不见了,肯定会感觉非常不方便.我们该如何找回Win8开始屏幕上消失的"桌面"磁贴呢? 图示:Win8开始屏幕的"桌面"磁贴 将Win8"桌面"磁贴重新"固定到开始屏幕"

配置-android导出apk文件权限消失

问题描述 android导出apk文件权限消失 我用模拟器运行程序一切正常,然后导出apk安装时发现没有任何权限需求,然后返回看manifest里配置的权限全都不见了.反复导出了几次都这样,添加一次权限导出就没了 解决方案 编辑器的问题,建议重新安装!

图标变白无法打开-江湖救急,win8.1桌面图标消失,任务栏的应用图标变白且无法打开,该肿么办,求大神解救,拜谢。

问题描述 江湖救急,win8.1桌面图标消失,任务栏的应用图标变白且无法打开,该肿么办,求大神解救,拜谢. 江湖救急,我的笔电是win8.1的系统,桌面图标消失,任务栏的应用图标变白且无法打开,该肿么办,求大神解救,除了重装系统外,还有其他办法让电脑恢复正常吗?拜谢... 解决方案 用mhdd扫描下,硬盘可能有坏道.建议更换硬盘. 解决方案二: 用安装盘修复一下系统试试.

svn 客户端的图标消失的问题

问题描述 svn 客户端的图标消失的问题 好像是更新之后 项目的图标都不存在了, 没有用任何工具管理svn 不要重装svn 谢谢

360浏览器收藏栏隐藏怎么调出 收藏栏消失了显示方法

  使用360安全浏览器的用户常常会收藏一些网站再收藏夹以便随时访问,显示在主界面顶端的收藏栏更是能一键打开网址,不过有人遇到浏览器收藏栏消失不见了的情况,360浏览器收藏栏隐藏怎么调出?接下来小编就为大家带来360浏览器收藏栏不见了解决显示方法. 360浏览器收藏栏隐藏怎么调出 收藏栏消失了显示方法 调出隐藏的360安全浏览器收藏栏快捷键:ctrl+b 如果没有反应,可能是电脑中其他软件和360浏览器该热键发生冲突,这里我们可以去到360浏览器--工具--选项--快捷键设置,将360浏览器收藏