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的變化動畫先后關系。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,255評論 4 61
  • github排名https://github.com/trending,github搜索:https://gith...
    小米君的demo閱讀 4,829評論 2 38
  • 一直想試試RN,但是因為安裝環境的問題一直沒有成功,中間陸陸續續因為時間的原因中斷了一段時間,今天終于鼓起勇氣再次...
    傅hc閱讀 3,599評論 6 6
  • 為了控制自己慵懶拖的現象,也為了自己明年有一個新的起色,特給自己制定了個人人生準則和日課。 16條人生準則 1.書...
    小鹿故事集閱讀 360評論 2 1
  • 溫柔與堅強的完美結合;寒冷與溫暖的統一呈現;——清晨的冰凌花。 冬季的清晨如同夜晚,黑漆漆的讓人不愿睜眼,夢一樣開...
    梅園遺珠閱讀 543評論 0 0