登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

微信自定义搜索框实现

[复制链接]
来自: Joker-388 分类: iOS精品源码 上传时间: 2017-4-7 12:24:50
Tag:

项目介绍:

模仿微信的搜索框效果,自定义SearchController,实现了和系统默认的UISearchController相同的使用方式和代理回调。
和UISearchController相同的初始化方法:
[Actionscript3] 查看源文件 复制代码
- (JKRSearchController *)searchController {
    if (!_searchController) {
        JKRSearchResultViewController *resultSearchController = [[JKRSearchResultViewController alloc] init];
        _searchController = [[JKRSearchController alloc] initWithSearchResultsController:resultSearchController];
        _searchController.searchBar.placeholder = @"搜索";
        _searchController.hidesNavigationBarDuringPresentation = YES;
        _searchController.searchResultsUpdater = self;
        _searchController.searchBar.delegate = self;
        _searchController.delegate = self;
    }
    return _searchController;
}


和UISearchController相同的加载方式:
[Actionscript3] 查看源文件 复制代码
[self.tableView setTableHeaderView:self.searchController.searchBar];


和UISearchController相同的代理回调:
[Actionscript3] 查看源文件 复制代码
#pragma mark - JKRSearchControllerhResultsUpdating
- (void)updateSearchResultsForSearchController:(JKRSearchController *)searchController {
    NSString *searchText = searchController.searchBar.text;
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SELF CONTAINS %@)", searchText];
    JKRSearchResultViewController *resultController = (JKRSearchResultViewController *)searchController.searchResultsController;
    if (!(searchText.length > 0)) resultController.filterDataArray = @[];
    else resultController.filterDataArray = [self.dataArray filteredArrayUsingPredicate:predicate];
}

#pragma mark - JKRSearchControllerDelegate
- (void)willPresentSearchController:(JKRSearchController *)searchController {
    NSLog(@"willPresentSearchController, %@", searchController);
}

- (void)didPresentSearchController:(JKRSearchController *)searchController {
    NSLog(@"didPresentSearchController, %@", searchController);
}

- (void)willDismissSearchController:(JKRSearchController *)searchController {
    NSLog(@"willDismissSearchController, %@", searchController);
}

- (void)didDismissSearchController:(JKRSearchController *)searchController {
    NSLog(@"didDismissSearchController, %@", searchController);
}

#pragma mark - JKRSearchBarDelegate
- (void)searchBarTextDidBeginEditing:(JKRSearchBar *)searchBar {
    NSLog(@"searchBarTextDidBeginEditing %@", searchBar);
}

- (void)searchBarTextDidEndEditing:(JKRSearchBar *)searchBar {
    NSLog(@"searchBarTextDidEndEditing %@", searchBar);
}

- (void)searchBar:(JKRSearchBar *)searchBar textDidChange:(NSString *)searchText {
    NSLog(@"searchBar:%@ textDidChange:%@", searchBar, searchText);
}


Demo地址:https://github.com/Joker-388/JKRCustomSearchController



相关源码推荐:

我来说两句
*滑动验证:
所有评论(15)
phoiu 2017-4-7 12:25:30
内容很好,棒棒哒
回复
hellokenken 2017-4-7 12:25:54
感谢大神分享,必须顶!
回复
AlonMessi 2017-4-7 12:26:28
我是来学习的
回复
littleRed 2017-4-7 12:28:34
code4app好的代码demo真的很多,谢谢啦~
回复
BlueManlove 2017-4-7 12:29:04
相当不错,感谢无私分享精神!
回复
kengsir 2017-4-7 12:30:44
code4app好的代码demo真的很多,谢谢啦~
回复
xiaozn 2017-4-17 21:09:28
学习学习!
回复
一夜北风吹 2017-4-18 14:26:55
感谢分享,Code4App有你更精彩
回复
hxincc 2017-5-3 11:08:10
当选择不隐藏navigation的时候会出现bug ,取消按钮操作失效,也无法回到原数据页
回复
12下一页
5636 3 0
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条

联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表