2017-07-17 98 views
11

我有一個嵌入導航控制器的普通視圖控制器。在這個視圖控制器中,我有一個使用安全區域約束的表視圖。 (我不使用桌面視圖控制器)滾動時隱藏大標題

導航控制器設置爲喜歡大標題,模式設置爲.always。在測試版2中,這個功能非常完美,所以當我進入標題時很大,當我向下滾動時它變得很小(與正常情況一樣)。但是從測試版3開始,這已經不再適用了。

任何人都知道如何重新打開它,或者如何讓它如此,當我滾動表格視圖時它會變得更小。像所有新的iOS 11應用程序的行爲一樣?

或者這是swift 4/iOS 11的當前版本中的一個錯誤,但像Messenger和settings這樣的應用程序仍然以這種方式工作。

在此先感謝。

回答

20

對我來說,那是,如果你設置的布爾「傾向於大標題」在故事板爲真它會保持很大,如果你打開它的代碼,它按預期工作!

+4

這絕對是iOS 11中的一個錯誤,但您的提示對我來說是一種解決方法!謝謝! – funkenstrahlen

+3

仍然是通用汽車構建的案例! – Ely

+2

我填寫了一個錯誤報告,其中一個被設置爲重複,所以他們應該知道它。 –

0

檢查「傾向於大標題」在IB您的導航欄,或使用:

navigationController?.navigationBar.prefersLargeTitles = true 
+2

是讓我做到這一點,大標題顯示,但是當我向下滾動從來沒有變小。它總是很大,但當我向上滾動時,我處於頂部,標題變得更大。所以這些約束條件也能正常工作,這是因爲β3版本在我向下滾動時不會變小。 –

1
(void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y > 0) { //20 
     [self.navigationController.navigationBar setPrefersLargeTitles:NO]; 
    } else { 
     [self.navigationController.navigationBar setPrefersLargeTitles:YES]; 
    }  
} 
5

我找到了一個解決辦法在這個網站 基本上,如果的tableView(或具有滾動元素)是不是在你的視圖層次第一種觀點,大標題出現故障時自動隱藏。

Example that will NOT work Example that will work

https://markusbodner.com/2017/10/08/fix-large-navigation-bar-title-not-hiding-on-scroll-in-ios-11/

我加的觀點willAppear:

 if #available(iOS 11.0, *) { 
     navigationController?.navigationBar.prefersLargeTitles = true 
    } else { 
     // Fallback on earlier versions 
    } 
+0

請在此處發佈解決方法代碼。 –

+0

我在故事板上做了這件事我附上了兩張圖片,顯示應該如何編輯層次結構......我添加了用於設置大標題的代碼 - –