UISearchController使用方法及注意事项
2016-03-04 09:29
507 查看
在进行ios开发的时候,有时候涉及到搜索功能,实现搜索功能的方法有很多,可以是用自定义的搜索控件,也可以用sdk提供的UISearchController(ios8以后)、UISearchDisplayController(ios8之前);
下面介绍UISearchController使用方法及注意事项:
_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使用方法及注意事项:
_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,具体原因暂时未找到
相关文章推荐
- 用xib自定义UITableViewCell的注意事项——重用问题
- LeetCode-60-Permutation Sequence(找规律)-Medium
- 自定义UITabBarController标签视图控制器
- 自定义UITabBarController标签视图控制器
- 获取手机唯一标识符(UUID+KeyChain)
- HDU 4632 Palindrome subsequence(区间DP)
- HDU 4632 Palindrome subsequence(区间DP)
- DDOS--DNS Query Flood
- ueditor 1.4.3.2 独立/单独 上传图片框原理
- NGUI研究院之三种方式监听NGUI的事件方法
- 初次接触vue
- Vision GUI programming products
- Installation of Torque/Maui for a Beowulf Cluster
- RHEL Installation Guide
- torque 简介
- UIStackView
- The GNU build system体验教程:Hello world example with Autoconf and Automake
- UVA 787 Maximum Sub-sequence Product
- uitableView行高自定义
- [UVA 11324]The Largest Clique[SCC][缩点]