這幾天抽空把WWDC的Session看了一些,總結(jié)了一些iOS11新的特性悄泥,希望對(duì)于幫助我們適配iOS11有所幫助虏冻。 以下是視頻鏈接,不過都是英文的弹囚。Updating Your App for iOS 11 - WWDC 2017 - Session 204 - iOS厨相。
1. UIKi t ?Bars增加的一些新特性
WWDC通過iOS新增的文件管理App:Files 開始介紹,在File上這個(gè)App中可以看見iOS11中UIKit’s Bar 的一些新特性。
(1)在瀏覽功能上的大標(biāo)題視圖(向上滑動(dòng)后標(biāo)題會(huì)回到原來的UI效果)
(2)橫屏狀態(tài)下tab上的文字和icon會(huì)變?yōu)樽笥遗帕?/h4>
UIBarItem
UIBarItem是UI tab bar item和UI bar button item的父類蛮穿,要想實(shí)現(xiàn)上面介紹的效果庶骄,只需要為UIBarItem 設(shè)置landscapeImagePhone屬性,在storyboard中也支持這個(gè)設(shè)置践磅,對(duì)于HUD的image需要設(shè)置另一個(gè)iOS11新增的屬性:largeContentSizeImage单刁,關(guān)于這部分更詳細(xì)的討論,可以參考 WWDC2017 Session 215:What's New in Accessibility
控制大標(biāo)題顯示
在UI navigation bar中新增了一個(gè)BOOL屬性prefersLargeTitles,將該屬性設(shè)置為ture府适,navigation bar就會(huì)在整個(gè)APP中顯示大標(biāo)題羔飞,如果想要在控制不同頁面大標(biāo)題的顯示,可以通過設(shè)置當(dāng)前頁面的navigationItem的largeTitleDisplayMode屬性檐春;
navigationItem.largeTitleDisplayMode
typedefNS_ENUM(NSInteger,UINavigationItemLargeTitleDisplayMode) {
/// 自動(dòng)模式依賴上一個(gè) item 的特性
UINavigationItemLargeTitleDisplayModeAutomatic,
/// 針對(duì)當(dāng)前 item 總是啟用大標(biāo)題特性
UINavigationItemLargeTitleDisplayModeAlways,
/// Never
UINavigationItemLargeTitleDisplayModeNever,
}
Navigation 集成 UISearchController
把你的UISearchController賦值給navigationItem逻淌,就可以實(shí)現(xiàn)獎(jiǎng)UISearchController集成到Navigation.
navigationItem.searchController ?//iOS 11 新增屬性
navigationItem.hidesSearchBarWhenScrolling ?//決定滑動(dòng)的時(shí)候是否隱藏搜索框
UINavigationController和滾動(dòng)交互
滾動(dòng)的時(shí)候,以下交互操作都是由UINavigationController負(fù)責(zé)調(diào)動(dòng)的:
UIsearchController搜索框效果更新大標(biāo)題效果的控制Rubber banding效果//當(dāng)你開始往下拉疟暖,大標(biāo)題會(huì)變大來回應(yīng)那個(gè)滾輪