变更记录

序号 录入时间 录入人 备注
1 2015-03-23 Alfred Jiang -
2 2015-12-23 Alfred Jiang -

方案名称

UISearchBar - 通过 UISearchDisplayViewController 实现全屏搜索显示效果

关键字

UISearchBar \ UISearchDisplayViewController \ 搜索 \ 查询 \ 全屏搜索

需求场景

  1. 实现电机 SearchBar 进入全屏搜索模式的场景

参考链接

  1. CSDN - UISearchDisplayController学习笔记

详细内容

1. 实例化 UISearchDisplayViewController 对象
@property (nonatomic, strong) UISearchDisplayController *searchController;

- (void)addSearchBarAndSearchDisplayController {

    UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
    [searchBar sizeToFit];
    searchBar.delegate = self;

    self.tableView.tableHeaderView = searchBar;

    UISearchDisplayController *searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
    searchDisplayController.delegate = self;
    searchDisplayController.searchResultsDataSource = self;
    searchDisplayController.searchResultsDelegate = self;

    self.searchController = searchDisplayController;
}
2. 进入全屏搜索模式,需要设置 UISearchBardelegate ,并实现 searchBarShouldBeginEditing 方法。在中间执行:
[self.searchDisplayController setActive:YES animated:YES];
3. 实现必要的代理方法
//在搜索内容改变时调用
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
    return YES;
}

//在搜索范围改变时调用(可选)
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption {
    return YES;
}

效果图

(无)

备注

(无)

results matching ""

    No results matching ""