iOS開發-UI (九)UITableView搜尋功能,-uiuitableview

來源:互聯網
上載者:User

iOS開發-UI (九)UITableView搜尋功能,-uiuitableview

知識點:

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];

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.