UISearchBar 搜索框

fb24 9年前發布 | 1K 次閱讀 Objective-C IOS

///在 .h 寫代理 <UITableViewDelegate,UITableViewDataSource,UISearchBarDelegate>
///結合UITableView 展示了UISearchBar

_searchArray = [[NSMutableArray alloc] init]; _dataArray = [[NSMutableArray alloc] initWithObjects:@"qq", @"tencent", @"NOKIA", @"samsung", @"google", @"apple", @"MicroSoft", @"htc", nil];

_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 20, 320, 460) style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
[self.view addSubview:_tableView];
[_tableView release];

UISearchBar* searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 84)];
_tableView.tableHeaderView = searchBar;
//類型
//searchBar.barStyle = UIBarStyleBlack;
//占位符
searchBar.placeholder = @"請輸入搜索內容";
//副標題
//searchBar.prompt = @"這是什么?";
//顯示按鈕
searchBar.showsBookmarkButton = YES;
searchBar.showsCancelButton = YES;
searchBar.showsSearchResultsButton = YES;
searchBar.showsScopeBar = YES;
[searchBar setScopeButtonTitles:[NSArray arrayWithObjects:@"a", @"b", @"c", @"d",nil]];
//設置代理
searchBar.delegate = self;




- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope{
NSArray* array = [NSArray arrayWithObjects:@"a", @"b", @"c", @"d",nil];
NSString* str = [array objectAtIndex:selectedScope];
searchBar.text = str;

}

//搜索

  • (void)searchBar:(UISearchBar )searchBar textDidChange:(NSString )searchText{ //如果搜索欄為空,代表我們沒有在搜索,tableView需要顯示原數據。如果不為空,代表我們在搜索,tableView要顯示搜索結果 if (searchBar.text == nil || [searchBar.text isEqualToString:@""]) {

      _isSearch = NO;
    

    } else {

      _isSearch = YES;
      [_searchArray removeAllObjects];
      for (NSString* str in _dataArray) {
          //判斷str里面是否包含searchBar.text
          NSRange range = [str rangeOfString:searchBar.text];
          if (range.location != NSNotFound) {
              [_searchArray addObject:str];
          }
      }
    

    } [_tableView reloadData]; }

  • (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{ [searchBar resignFirstResponder]; }

//tableView delegate

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ if (_isSearch) {

      return _searchArray.count;
    

    } return _dataArray.count; }

  • (UITableViewCell)tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath )indexPath{ UITableViewCell cell = [tableView dequeueReusableCellWithIdentifier:indexPath.row%2==0?@"IDRed":@"IDBlue"]; if (cell == nil) {

      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:indexPath.row%2==0?@"IDRed":@"IDBlue"] autorelease];
      if (indexPath.row%2 == 0) {
          cell.contentView.backgroundColor = [UIColor redColor];
      } else {
          cell.contentView.backgroundColor = [UIColor blueColor];
      }
    

    }

    if (_isSearch) {

      cell.textLabel.text = [_searchArray objectAtIndex:indexPath.row];
    

    } else {

      cell.textLabel.text = [_dataArray objectAtIndex:indexPath.row];
    

    }

return cell;

}</pre>

 本文由用戶 fb24 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!