UISearchController使用方法及注意事项
来源:互联网 发布:java 当前时间加1小时 编辑:程序博客网 时间:2024/05/01 02:23
http://blog.csdn.net/kenrry1992/article/details/50799722
在进行iOS开发的时候,有时候涉及到搜索功能,实现搜索功能的方法有很多,可以是用自定义的搜索控件,也可以用sdk提供的UISearchController(ios8以后)、UISearchDisplayController(ios8之前);
下面介绍UISearchController使用方法及注意事项:
//设置UISearchController的显示属性,以下3个属性默认为YES //搜索时,背景变暗色 _searchController.dimsBackgroundDuringPresentation = NO; //搜索时,背景变模糊 _searchController.obscuresBackgroundDuringPresentation = NO; //隐藏导航栏 _searchController.hidesNavigationBarDuringPresentation = NO;
_searchController = [[UISearchController alloc] initWithSearchResultsController:_viewController];
_searchController.searchResultsUpdater = self; //设置UISearchResultsUpdating协议代理
_searchController.delegate = self; //设置UISearchControllerDelegate协议代理
_searchController.dimsBackgroundDuringPresentation = NO; //是否添加半透明覆盖层
_searchController.hidesNavigationBarDuringPresentation = YES; //是否隐藏导航栏
[self.view addSubview:_searchController.searchBar]; //此处重要一步,将searbar显示到界面上
另外需要注意在合适的地方添加下面一行代码
self.definesPresentationContext = YES;
这行代码是声明,哪个viewcontroller显示UISearchController,苹果开发中心的demo中的对这行代码,注释如下
// know where you want UISearchController to be displayed
a、如果不添加上面这行代码,在设置hidesNavigationBarDuringPresentation这个属性为YES的时候,搜索框进入编辑模式会导致,searchbar不可见,偏移-64;
在设置为NO的时候,进入编辑模式输入内容会导致高度为64的白条,猜测是导航栏没有渲染出来
b、如果添加了上面这行代码,在设置hidesNavigationBarDuringPresentation这个属性为YES的时候,输入框进入编辑模式正常显示和使用;在设置为NO的时候,搜索框进入编辑模式导致向下偏移64,具体原因暂时未找到
- UISearchController使用方法及注意事项
- UISearchController使用方法及注意事项
- 关于UISearchController的使用方法
- iOS UISearchController 的使用方法
- ScrolledComposite使用方法及注意事项
- EGOImageView的使用方法及注意事项
- HashMap的使用方法及注意事项
- EGOImageView的使用方法及注意事项
- EGOImageView的使用方法及注意事项
- PopUpWindow的使用方法及注意事项
- Go-append使用方法及注意事项
- c3p0的使用方法及注意事项
- .NET中lock的使用方法及注意事项
- .NET中lock的使用方法及注意事项
- .NET中lock的使用方法及注意事项
- onPause()和onStop()的使用方法及注意事项
- android有关SharedPreferences的使用方法及注意事项
- pthread-win32库编译及使用方法注意事项
- 【步兵 c++】组件模式--基础篇
- 实习第五天
- 【51nod】1006 最长公共子序列Lcs
- Android集成百度定位以及导航详解
- 独立游戏开发如何入门?
- UISearchController使用方法及注意事项
- STM32寄存器开发系列(1)启动代码设计
- (1)spring boot起步之Hello World【从零开始学Spring Boot】
- Dijkstra算法--一个点到其余点最短路径
- 网络编程TCP/UDP
- Thinkpad T400安装CentOS 7后无wifi的解决方法
- POJ 2492 A Bug's Life
- notepad++设置网络代理
- Rime协议学习笔记:(四)标识广播broadcast