iOS 는 UISearchBar 를 단독으로 사용 하여 검색 상 자 를 만 드 는 예제 입 니 다.

3718 단어 iOSUISearchBar
페이지 에 들 어간 후 네 비게 이 션 표시 줄 에 검색 상자(오른쪽 취소 버튼 포함)를 표시 하고 키 보드 를 팝 업 하 며 검색 상 자 는 직접 입력 가능 한 상태(첫 번 째 응답 자)로 오른쪽 취소 단 추 를 누 른 후 키 보드 를 접 고 이전 페이지 로 돌아 가 는 것 이 가능 합 니 다.

검색 페이지
1.대리 UISearchBarDelegate 구현

@interface SearchViewController ()<UISearchBarDelegate>
2.UISearchBar 를 속성 으로 만 들 기

@property (nonatomic, strong) UISearchBar *searchBar;
3.페이지 에 들 어가 면 키 보드 를 튕 기 고 나 가기 전에 키 보드 를 접는다.

- (void)viewDidAppear:(BOOL)animated
{
  [super viewDidAppear:animated];
  if (!_searchBar.isFirstResponder) {
    [self.searchBar becomeFirstResponder];
  }
}
- (void)viewWillDisappear:(BOOL)animated
{
  [super viewWillDisappear:animated];
  [self.searchBar resignFirstResponder];
}
4.구체 적 실현

- (void)setBarButtonItem
{
  //           
  [self.navigationItem setHidesBackButton:YES];
  //   searchBar View
  UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(5, 7, self.view.frame.size.width, 30)];
  //  searchBar
  UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(titleView.frame) - 15, 30)];
  //      
  searchBar.placeholder = @"    ";
  //    
  searchBar.backgroundImage = [UIImage imageNamed:@"clearImage"];
  //  
  searchBar.delegate = self;
  //        
  searchBar.showsCancelButton = YES;
  //    
  searchBar.tintColor = UIColorFromRGB(0x595959);
  //  searchBar    
  UITextField *searchTextField = [searchBar valueForKey:@"_searchField"];
  //    
  searchTextField.font = [UIFont systemFontOfSize:15];
  //       
  searchTextField.backgroundColor = [UIColor colorWithRed:234/255.0 green:235/255.0 blue:237/255.0 alpha:1];
  //      
  UIButton *cancleBtn = [searchBar valueForKey:@"cancelButton"];
  //        
  [cancleBtn setTitle:@"  " forState:UIControlStateNormal];
  //          
  [cancleBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  [titleView addSubview:searchBar];
  self.searchBar = searchBar;
  self.navigationItem.titleView = titleView;
}
5.대리 방법 실현

#pragma mark - UISearchBarDelegate
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
  return YES;
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
  searchBar.showsCancelButton = YES;
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
  NSLog(@"SearchButton");
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
  [self.searchBar resignFirstResponder];
  [self.navigationController popViewControllerAnimated:YES];
}

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
  searchBar.showsCancelButton = YES;
}

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
  NSString *inputStr = searchText;
  [self.results removeAllObjects];
  for (ElderModel *model in self.dataArray) {
    if ([model.name.lowercaseString rangeOfString:inputStr.lowercaseString].location != NSNotFound) {
      [self.results addObject:model];
    }
  }
  [self.tableView reloadData];
}

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기