ZQSearchController

ZQSearchController 仿饿了么搜索栏交互,

主要功能

1.搜索主界面、模糊匹配界面,搜索结果界面之前的状态切换。
2.可使用自定义结果界面进行搜索结果的展示。
3.输入内容节流处理,输入完毕后0.5秒后再发生搜索事件。
4.支持搜索历史,
5.支持热门搜索配置
6.顶部已适配iPhoneX或Xs

效果

demo.gif

依赖项目

SDWebImage

main

  • ZQSearchConst
  • ZQSearchViewController
  • ZQSearchNormalViewController
  • ZQSearchEditViewController

如何使用

  • git clone 项目,将ZQSearch文件夹拖入项目
使用详情(项目里有demo)

1.初始化ZQSearchController

NSArray *hots = @[@"热门",@"热门热门",@"热门热门热门",@"热门热门",@"热门",@"热门",@"热热门热门热门门"];
    
    UIViewController *resultController = [UIViewController new];
    
    ZQSearchViewController *vc = [[ZQSearchViewController alloc] initSearchViewWithHotDatas:hots resultController:resultController];
    vc.delegate = self;
    [self.navigationController pushViewController:vc animated:NO];

2.实现代理

- (void)searchEditViewRefreshWithDataBlock:(void (^)(id))block {
    //异步调用搜索接口。
    将搜索结果通过block回调到searchcontroller内部。
}

//模糊搜索结果列表,显示在传入的resultController
- (void)searchFuzzyResultWithKeyString:(NSString *)keyString Data:(id<ZQSearchData>)data resultController:(UIViewController *)resultController{
    //1 搜索关键字
    NSLog(@"%@",keyString);
    //2 搜索返回数据(需遵守<ZQSearchData>协议,可自行扩展)
    NSLog(@"%@",data);
    //3 刷新resultController
    [resultController reloadData];
}

//精确搜索回调
- (void)searchConfirmResultWithKeyString:(NSString *)keyString Data:(id<ZQSearchData>)data resultController:(UIViewController *)resultController {
    //可以将结果自定义处理。
    ResultViewController *vc = [ResultViewController new];
    [resultController.navigationController pushViewController:vc animated:YES];
}

3.数据模型

搜索结果的对象需遵守ZQSearchData协议。用于显示模糊搜索时的匹配结果UI

@protocol ZQSearchData<NSObject>
@required
@property (nonatomic, copy) NSString *title;

@optional
@property (nonatomic, assign) SearchEditType editType;//1.模糊内容,2.精确内容
@property (nonatomic, copy) NSString *iconUrl;
@property (nonatomic, copy) NSString *desc;

@end

下载地址

https://github.com/rabbitmouse/ZQSearchController.git

感谢

如果你喜欢,可以给我star一下,如果觉得写的不好 也可以留言讨论,或者分享你的看法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,019评论 3 119
  • 清晨光影被斑驳的枝叶揉的稀碎,在地面投下零星的光斑 落叶飘下留了一地的枫红,徒留几只斑鸠立于枝丫不知是走是留 顽劣...
    Felicia_Q阅读 322评论 0 1
  • 大家晚上好,前几天上了形象教育魅力女神的课程,给大家分享一些相关知识,有需要的可以了解借鉴。 体型测量 头长:头顶...
    芳芳整理师阅读 614评论 0 0
  • “ 夏天还未如期而至。”
    空集一原阅读 128评论 0 0
  • 2018年7月,有幸参加互加计划网络培训,这是参加工作六年以来第一次参加如此规模的学习,对于我们乡村教师来...
    赫章1475陈忠健阅读 369评论 0 0