美文网首页
ZQSearchController

ZQSearchController

作者: 巫师学徒 | 来源:发表于2018-09-28 19:03 被阅读16次
    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一下,如果觉得写的不好 也可以留言讨论,或者分享你的看法。

    相关文章

      网友评论

          本文标题:ZQSearchController

          本文链接:https://www.haomeiwen.com/subject/dlapoftx.html