UISearchBar

UISearchBar是系統自帶的搜索控件 繼承於UIView

一.相關屬性

    
   seacbar.prompt = @"頂部提示信息";
    
    
    seacbar.placeholder = @"我是佔位文字";
    
   seacbar.text = @"我是搜索的文字";
    
    
    
    //右側按鈕相關 四個按鈕默認NO
    //是否顯示圖書按鈕
    seacbar.showsBookmarkButton = YES;
    //取消按鈕
   seacbar.showsCancelButton = YES;
    //搜索結果按鈕是否顯示
   seacbar.showsSearchResultsButton = YES;
    //搜索按鈕是否選中
   seacbar.searchResultsButtonSelected = YES;
    
    
    //光標顏色
    seacbar.tintColor = [UIColor orangeColor];
    //搜索框背景顏色
    seacbar.barTintColor = [UIColor purpleColor];
    //搜索框背景色和圖片
   seacbar.backgroundColor = [UIColor yellowColor];
    
    //風格,black黑色,default默認 白色框,灰色背景
    seacbar.barStyle = UIBarStyleBlack;
    
    
    //搜索框背景顏色是否顯示, default(默認),Prominent(顯示),minima(顯示顯示的是backgroundColor的顏色,)
       seacbar.searchBarStyle = UISearchBarStyleProminent;
    
    //總結幾種背景色調用 當同時設置了barTintColor,backgroundColor的時候並且searchBarStyle沒有設置時,顯示的是默認的Default,當變成minima的時候背景色顯示的backgroundColor
    
    
    //搜索框背景圖片(無效)
   seacbar.backgroundImage = [UIImage imageNamed:@"timg.jpeg"];
    
    
    //修改搜索框左邊按鈕圖片
    [seacbar setImage:[UIImage imageNamed:@"timg.jpeg"]forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
    
      //搜索框背景偏移量
    seacbar.searchFieldBackgroundPositionAdjustment = UIOffsetMake(9, 3);
    //輸入文字的偏移量
    seacbar.searchTextPositionAdjustment = UIOffsetMake(1, 1);
    
    
    
    
    //顯示和隱藏按鈕是否有動畫效果
    [seacbar  setShowsCancelButton:YES animated:NO];
    

二.第一響應者

第一響應者
[searchBar becomeFirstResponder]
取消第一響應者
 [searchBar resignFirstResponder];

三.設置右側取消按鈕字體

 for(id cc in [searchBar subviews])
    {
        if([cc isKindOfClass:[UIButton class]])
        {
            UIButton *btn = (UIButton *)cc;
            [btn setTitle:@"取消"  forState:UIControlStateNormal];
        }
    }
    [searchBar setShowsCancelButton:YES animated:YES];

四.代理方法

// 1. 將要開始編輯文本時會調用該方法,返回 NO 將不會變成第一響應者
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
- // 2. 開始輸入文本會調用該方法
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
- // 3. 將要結束編輯文本時會調用該方法,返回 NO 將不會釋放第一響應者
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
- // 4. 結束編輯文本時調用該方法
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
- // 5. 文本改變會調用該方法(包含clear文本)
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
- // 6. 文字改變前會調用該方法,返回NO則不能加入新的編輯文字
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
- // 7. 鍵盤上的搜索按鈕點擊的會調用該方法
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
- // 8. 搜索框右側圖書按鈕點擊會調用該方法
- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar
- // 9.點擊取消按鈕會調用該方法
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
- // 10.搜索結果列表按鈕被按下會調用該方法
- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar
- // 11. 搜索框的附屬按鈕視圖中切換按鈕會調用該方法
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章