这几天抽空把WWDC的Session看了一些,总结了一些iOS11新的特性,希望对于帮助我们适配iOS11有所帮助。 以下是视频链接,不过都是英文的。Updating Your App for iOS 11 - WWDC 2017 - Session 204 - iOS。
1. UIKi t Bars增加的一些新特性
WWDC通过iOS新增的文件管理App:Files 开始介绍,在File上这个App中可以看见iOS11中UIKit’s Bar 的一些新特性。
(1)在浏览功能上的大标题视图(向上滑动后标题会回到原来的UI效果)
(2)横屏状态下tab上的文字和icon会变为左右排列
UIBarItem
UIBarItem是UI tab bar item和UI bar button item的父类,要想实现上面介绍的效果,只需要为UIBarItem 设置landscapeImagePhone属性,在storyboard中也支持这个设置,对于HUD的image需要设置另一个iOS11新增的属性:largeContentSizeImage,关于这部分更详细的讨论,可以参考 WWDC2017 Session 215:What's New in Accessibility
控制大标题显示
在UI navigation bar中新增了一个BOOL属性prefersLargeTitles,将该属性设置为ture,navigation bar就会在整个APP中显示大标题,如果想要在控制不同页面大标题的显示,可以通过设置当前页面的navigationItem的largeTitleDisplayMode属性;
navigationItem.largeTitleDisplayMode
typedefNS_ENUM(NSInteger,UINavigationItemLargeTitleDisplayMode) {
/// 自动模式依赖上一个 item 的特性
UINavigationItemLargeTitleDisplayModeAutomatic,
/// 针对当前 item 总是启用大标题特性
UINavigationItemLargeTitleDisplayModeAlways,
/// Never
UINavigationItemLargeTitleDisplayModeNever,
}
Navigation 集成 UISearchController
把你的UISearchController赋值给navigationItem,就可以实现奖UISearchController集成到Navigation.
navigationItem.searchController //iOS 11 新增属性
navigationItem.hidesSearchBarWhenScrolling //决定滑动的时候是否隐藏搜索框
UINavigationController和滚动交互
滚动的时候,以下交互操作都是由UINavigationController负责调动的:
UIsearchController搜索框效果更新大标题效果的控制Rubber banding效果//当你开始往下拉,大标题会变大来回应那个滚轮