知識點:
1.UITableView搜索功用
<UITableViewDataSource,UITableViewDelegate,UISearchResultsUpdating,UISearchControllerDelegate>
=======================
UITableView搜索功用
1.UISearchController
搜索控制器
@property (nonatomic,strong)UITableView *tableView;//表格視圖
@property (nonatomic,strong)NSMutableArray *dataArr;//數據源數組
@property (nonatomic,strong)UISearchController *searchCtl;//搜索
2.創立方式
- (instancetype)initWithSearchResultsController:(UIViewController *)searchResultsController;
//實例化一個ResultViewController
ResultViewController *ctl = [ResultViewController new];
NSLog(@"ctl = %p",ctl);
//實例化一個搜索控制器
//參數:需求提供一個展現後果的控制器
self.searchCtl = [[UISearchController alloc] initWithSearchResultsController:ctl];
3.@property (nonatomic, assign) BOOL dimsBackgroundDuringPresentation;
作用:在搜索的時分使底色變暗
//去掉變暗效果
self.searchCtl.dimsBackgroundDuringPresentation = NO;
4.可遵照的協議代理
1)UISearchResultsUpdating
2)UISearchControllerDelegate
//設置代理
self.searchCtl.searchResultsUpdater = self;
self.searchCtl.delegate = self;
5.代理辦法
1)- (void)updateSearchResultsForSearchController:(UISearchController *)searchController;
調用機遇:當搜索框的輸出內容改動的時分
#pragma mark- UISearchResultsUpdating
//進入編輯形式或許搜索輸出框內容發作改動的時分,都會回調以下辦法
-(void)updateSearchResultsForSearchController:(UISearchController *)searchController{
//獲得展現搜索後果的控制器對象
ResultViewController *resultCtl = (ResultViewController *)searchController.searchResultsController;
NSLog(@"resultCtl = %p",resultCtl);
//清空數組
[resultCtl.saveArr removeAllObjects];
for (NSString *name in self.dataArr) {
//判別name當中能否包括了searchBar.text
if ([name containsString:searchController.searchBar.text]) {
[resultCtl.saveArr addObject:name];
}
}
//刷新UI
[resultCtl.resultTableView reloadData];
}
2)- (void)didDismissSearchController:(UISearchController *)searchController
調用機遇:當加入搜索形式的時分
//加入搜索形式
-(void)didDismissSearchController:(UISearchController *)searchController{
//切換成非搜索形式
self.isSearch = NO;
//刷新UI
[self.tableView reloadData];
}
6.UISearchBar
搜索框
//設置searchBar此搜索輸出框為表格視圖的頭部視圖
self.tableView.tableHeaderView = self.searchCtl.searchBar;
1)sizeToFit
作用:UIView依據自己的內容來變化Frame的大小
//依據內容自動婚配自身的大小
[self.searchCtl.searchBar sizeToFit];
2)placeholder
作用:文字提示
//設置文字提示
self.searchCtl.searchBar.placeholder = @"請輸出關鍵字";
3)barTintColor
作用:輸出框的背風光
//背風光
self.searchCtl.searchBar.barTintColor = [UIColor cyanColor];
【iOS開發-UI (九)UITableView搜索功用】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!