iOS11 NavigationBar 新特性

开头语:

在iOS 11中,导航栏新加入了largeTitles和searchController两个新特性,iOS 11 的大多数系统 app 都采用了新的设计,我整理了一下需要注意的几个问题。更多iOS11的新特性可以查看开发者所需要知道的 iOS 11 SDK 新特性

2017.10.19 修改:
增加评论中提到的大部分功能,具体请看:Demo

IMG_3237.PNG

这是邮件app中对这两个新特性的使用,导航栏的searchBar是新的api直接在导航栏设置的,非常方便。

1.设置导航栏标题 largeTitles

api非常简单,
self.navigationController?.navigationBar.prefersLargeTitles = true
一行代码即可
还有一个设置显示时机的api:
navigationItem.largeTitleDisplayMode

2.设置导航栏搜索控制器 searchController

实现需要首先创建一个UISearchController,之后设置为navigationItem.searchController即可
具体实现如下:

let mySearchController: UISearchController = UISearchController(searchResultsController: nil)
mySearchController.searchResultsUpdater = self
self.navigationItem.searchController = mySearchController

这里可以将searchResultsController设置为其他的控制器,不过需要注意的是这里需要将当前控制器的definesPresentationContext 属性设为true,否则在modal出searchResultsController时当搜索后整个导航栏会消失,即:
self.definesPresentationContext = true
如果不希望在搜索时隐藏导航栏的话可以进行如下设置:
mySearchController.hidesNavigationBarDuringPresentation = false
以上就是我对iOS11 导航栏新设计的研究,如有问题,请留言告诉我。
Demo请点击:Demo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,648评论 4 61
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,713评论 7 249
  • 在学校走一走,发现花园里面的花开了好几处, 樱花开满树,还有紫藤罗,在风中摇曳,吸引众多同学拍照留念,阳光正好,远...
    彩也阅读 1,639评论 0 1

友情链接更多精彩内容