-
iOS11中為導(dǎo)航欄新增了大標(biāo)題模式悄蕾,默認(rèn)情況下是關(guān)閉的翘瓮,效果的話可以看iOS11下系統(tǒng)中的很多應(yīng)用都使用了大標(biāo)題模式逗概,例如設(shè)置和文件颅夺。設(shè)置.png文件.png
控制是否開啟大標(biāo)題模式的屬性是UINavigationBar的prefersLargeTitles屬性蔬胯, 可以在任何能夠拿到navigationBar的地方開啟和關(guān)閉大標(biāo)題功能对供,默認(rèn)情況下是關(guān)閉的。
@property (nonatomic, readwrite, assign) BOOL prefersLargeTitles UI_APPEARANCE_SELECTOR API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
- 項(xiàng)目中開啟大標(biāo)題模式后笔宿。默認(rèn)所有帶有導(dǎo)航欄的控制器都顯示大標(biāo)題犁钟,當(dāng)然蘋果提供了API讓每個(gè)控制器決定自己是否顯示大標(biāo)題的屬性。iOS11之后給UINavigationItem添加了一個(gè)叫做largeTitleDisplayMode的枚舉類型的屬性用于設(shè)置當(dāng)前控制器大標(biāo)題的展示模式泼橘。
/*
///
默認(rèn)值就是Automatic涝动,該狀態(tài)下是否顯示大標(biāo)題依賴于上一個(gè)控制器的該屬性,如果導(dǎo)航控制器堆棧中最后一個(gè)控制器的屬性也是Automatic炬灭,那么是否顯示依賴于navigationBar的prefersLargeTitles屬性
UINavigationItemLargeTitleDisplayModeAutomatic,
/// 一直顯示
UINavigationItemLargeTitleDisplayModeAlways,
/// 一直不顯示
UINavigationItemLargeTitleDisplayModeNever,
*/
@property (nonatomic, readwrite, assign) UINavigationItemLargeTitleDisplayMode largeTitleDisplayMode API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);
- 只有當(dāng)navigationBar開啟大標(biāo)題模式之后醋粟,單個(gè)控制器設(shè)置UINavigationItem的大標(biāo)題展示模式才會(huì)生效,否則沒有意義。
- 對(duì)于大標(biāo)題模式下控制器切換的時(shí)候的動(dòng)畫效果系統(tǒng)已經(jīng)幫我們做好了米愿,無(wú)論是一直顯示大標(biāo)題還是大標(biāo)題和小標(biāo)題之間的切換都非常流暢厦凤,效果感人。