ZQSearchController 仿餓了么搜索欄交互娩鹉,
主要功能
1.搜索主界面牙瓢、模糊匹配界面酌儒,搜索結(jié)果界面之前的狀態(tài)切換。
2.可使用自定義結(jié)果界面進(jìn)行搜索結(jié)果的展示为居。
3.輸入內(nèi)容節(jié)流處理碌宴,輸入完畢后0.5秒后再發(fā)生搜索事件。
4.支持搜索歷史蒙畴,
5.支持熱門(mén)搜索配置
6.頂部已適配iPhoneX或Xs
效果
依賴(lài)項(xiàng)目
SDWebImage
main
ZQSearchConst
ZQSearchViewController
ZQSearchNormalViewController
ZQSearchEditViewController
如何使用
- git clone 項(xiàng)目贰镣,將ZQSearch文件夾拖入項(xiàng)目
使用詳情(項(xiàng)目里有demo)
1.初始化ZQSearchController
NSArray *hots = @[@"熱門(mén)",@"熱門(mén)熱門(mén)",@"熱門(mén)熱門(mén)熱門(mén)",@"熱門(mén)熱門(mén)",@"熱門(mén)",@"熱門(mén)",@"熱熱門(mén)熱門(mén)熱門(mén)門(mén)"];
UIViewController *resultController = [UIViewController new];
ZQSearchViewController *vc = [[ZQSearchViewController alloc] initSearchViewWithHotDatas:hots resultController:resultController];
vc.delegate = self;
[self.navigationController pushViewController:vc animated:NO];
2.實(shí)現(xiàn)代理
- (void)searchEditViewRefreshWithDataBlock:(void (^)(id))block {
//異步調(diào)用搜索接口。
將搜索結(jié)果通過(guò)block回調(diào)到searchcontroller內(nèi)部膳凝。
}
//模糊搜索結(jié)果列表碑隆,顯示在傳入的resultController
- (void)searchFuzzyResultWithKeyString:(NSString *)keyString Data:(id<ZQSearchData>)data resultController:(UIViewController *)resultController{
//1 搜索關(guān)鍵字
NSLog(@"%@",keyString);
//2 搜索返回?cái)?shù)據(jù)(需遵守<ZQSearchData>協(xié)議,可自行擴(kuò)展)
NSLog(@"%@",data);
//3 刷新resultController
[resultController reloadData];
}
//精確搜索回調(diào)
- (void)searchConfirmResultWithKeyString:(NSString *)keyString Data:(id<ZQSearchData>)data resultController:(UIViewController *)resultController {
//可以將結(jié)果自定義處理蹬音。
ResultViewController *vc = [ResultViewController new];
[resultController.navigationController pushViewController:vc animated:YES];
}
3.數(shù)據(jù)模型
搜索結(jié)果的對(duì)象需遵守ZQSearchData協(xié)議上煤。用于顯示模糊搜索時(shí)的匹配結(jié)果UI
@protocol ZQSearchData<NSObject>
@required
@property (nonatomic, copy) NSString *title;
@optional
@property (nonatomic, assign) SearchEditType editType;//1.模糊內(nèi)容,2.精確內(nèi)容
@property (nonatomic, copy) NSString *iconUrl;
@property (nonatomic, copy) NSString *desc;
@end
下載地址
https://github.com/rabbitmouse/ZQSearchController.git
感謝
如果你喜歡著淆,可以給我star一下劫狠,如果覺(jué)得寫(xiě)的不好 也可以留言討論,或者分享你的看法永部。