The basic usage of the UISearchBar search bar component in iOS App development

  • 2020-06-01 11:03:47
  • OfStack

Basic attributes


@UISearchBar search = [[UISearchBar alloc]initWithFrame:CGRectMake(0,44,320,120)];

pragma mark - basic Settings


// Control style The default --0 white ,1 It's black /*
UIBarStyleDefault          = 0,
UIBarStyleBlack            = 1,
search.barStyle =UIBarStyleDefault;
/* UISearchBarStyleDefault,
// currently UISearchBarStyleProminent UISearchBarStyleProminent, // used my Mail, Messages and Contacts(provides no default background color or image but will display one if customized as such The colors and pictures provided by the system are invalid , Self-designed and effective )      UISearchBarStyleMinimal    // used by Calendar, Notes and Music      */     search.searchBarStyle =UISearchBarStyleDefault;     // Controls the text displayed above     search.text =@"HMT";     // A single line of text displayed at the top, usually as 1 A presenting bank     search.prompt =@"DOTA";     // Translucent prompt text, input search content disappeared     search.placeholder =@" Please enter the word to search for ";     // bar The color of the ( It has a gradient effect ) Search bar flash bar and selection bar border , Both the cancel button and the selection bar change to the set color when selected     search.tintColor = [UIColor redColor];     // Except for the search box , As posted 1 Zhang has hollowed out the color map of the search bar , Does not affect the color of any other Settings     search.barTintColor = [UIColor whiteColor];     // Specifies whether the control will have a perspective effect     search.translucent =YES;     // Set auto capitalization in what case     /*      UITextAutocapitalizationTypeNone,             // Unless you click uppercase yourself , Otherwise never capitalize      UITextAutocapitalizationTypeWords,            // Distinguish by word , Each word begins with a capital letter      UITextAutocapitalizationTypeSentences,        // Distinguish by sentence      UITextAutocapitalizationTypeAllCharacters,    // All letters are capitalized      */     search.autocapitalizationType =UITextAutocapitalizationTypeNone;     // Automatic style correction for text objects ( The forehead , I don't know what's the use )     /*      UITextAutocorrectionTypeDefault,      UITextAutocorrectionTypeNo,      UITextAutocorrectionTypeYes,      */     search.autocorrectionType =UITextAutocorrectionTypeNo;     // Keyboard style ( Refer to the article for details UITableView Break down (1))     search.keyboardType =UIKeyboardTypeNumberPad;

pragma mark - set the button icon to the right of the search bar (UISearchBarIcon)

    // Whether to display on the right side of the control 1 Book buttons     search.showsBookmarkButton =YES;     // Whether or not shown cancel button ( static )     //search.showsCancelButton = YES;     // Whether or not shown cancel button ( It's animated )     [search setShowsCancelButton:YES animated:YES];     // Whether to display the search results button on the right side of the control ( Graphics is 1 It's in a circle 1 A down arrow )     search.showsSearchResultsButton =YES;     // Whether the search results button is selected     search.showsSearchResultsButton =YES;     // Set the right end of the control to display the search results button --- You can replace it with a picture     [search setImage:[UIImage imageNamed:@"qiyi.png"]forSearchBarIcon:UISearchBarIconResultsList state:UIControlStateNormal];

pragma mark - search bar bottom selection bar

    // The selection bar at the bottom of the search bar, and the content in the array is the title of the button     search.scopeButtonTitles = [NSArray arrayWithObjects:@"iOS",@"Android",@"iPhone",nil];     // Enter interface , The index of the default selection bar button at the bottom of the search bar ( That is the first 1 Appears in which selection bar )     search.selectedScopeButtonIndex =2;     // Controls whether the selection bar below the search bar is displayed ( According to it , To modify the search the frame, If you don't show it 80 It is enough )     search.showsScopeBar =YES;

pragma mark - sets control image

    // Sets control background image     search.backgroundImage = [UIImage imageNamed:@"qiyi.png"];     // Set the background image below the search bar     search.scopeBarBackgroundImage = [UIImage imageNamed:@"qiyi.png"];

pragma mark - protocol UISearchBarDelegate

(no explanation, look at the name, it's obvious)


@ Edit text  // UISearchBar Execute this method when you get focus and start editing (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar;           // return NO to not become first responder (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{          // called when text starts editing           [searchBar setShowsCancelButton:YES animated:YES];   //  Animation shows the cancel button } (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;       // return NO to not resign first responder (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;            // called when text ends editing (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{   // called when text changes (including clear)    @ This method is executed when the search content changes. Very useful, you can do real-time search }


(BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)textNS_AVAILABLE_IOS(3_0);                 // called before text changes
@ Click on the button (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar;     // called when keyboard search button pressed (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar;        // called when bookmark button pressed (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar{           // called when cancel button pressed     [searchBar setShowsCancelButton:NO animated:NO];    // Cancel button recall     [searchBar resignFirstResponder];                                // Cancel the first 1 Response values , Keyboard recycling , End of the search } (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBarNS_AVAILABLE_IOS(3_2);// called when search results button pressed (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScopeNS_AVAILABLE_IOS(3_0);

Data brush selection class :NSPredicate


@ Assuming that : NSArray array = [[NSArray alloc]initWithObjects:@"luna",@"moon",@"",@"lion",@"coco", nil]; // The processing of the data occurs primarily in this method (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{     // methods 1:([c] Case insensitive [d] The absence of a phonetic symbol is the absence of an accent [cd] It is neither case sensitive nor phonemic. )     NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS [cd] %@",searchText];    //  Arrays provide quick traversal , The return type is NSArray    NSLog(@"%@",[ _array filteredArrayUsingPredicate:predicate]);     // methods 2:     for (int i = 0; i count]; i++) {         if ([predicate evaluateWithObject:[ _array objectAtIndex:i]]) {             NSLog(@"%@",[arrayobjectAtIndex:i]);         }     } }


Related articles: