UISeatchBar

1、修改UISearchBar的背景颜色

UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 要IB中没有直接操作背景的属性。方法是直接将 UISearchBarBackGround移去  


  1. seachBar=[[UISearchBar alloc] init];  
  2. seachBar.backgroundColor=[UIColor clearColor];  
  3. for (UIView *subview in seachBar.subviews)   
  4. {    
  5. if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])  
  6.        {    
  7. [subview removeFromSuperview];    
  8. break;  
  9. }   

第二种解决的方法:


  1. [[searchbar.subviews objectAtIndex:0]removeFromSuperview]; 

  2、

    UISearchBar* m_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 44, 320, 41)];

    m_searchBar.delegate = self;

    m_searchBar.barStyle = UIBarStyleBlackTranslucent;

    m_searchBar.autocorrectionType = UITextAutocorrectionTypeNo;

    m_searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone;

    m_searchBar.placeholder = _(@"Search");  

    m_searchBar.keyboardType =  UIKeyboardTypeDefault;

    //为UISearchBar添加背景图片

    UIView *segment = [m_searchBar.subviews objectAtIndex:0];

    UIImageView *bgImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Images/search_bar_bg.png"]];        [segment addSubview: bgImage];  

    //<---背景图片

    [self.view addSubview:m_searchBar];

    [m_searchBar release]; 

3:取消UISearchBar调用的键盘


  1. [searchBar resignFirstResponder];  

添加UISearchBar的两种方法:

代码


  1. UISearchBar *mySearchBar = [[UISearchBar alloc] 
  2. initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, 45)];          
  3.  mySearchBar.delegate = self;          
  4.  mySearchBar.showsCancelButton = NO;          
  5.  mySearchBar.barStyle=UIBarStyleDefault;          
  6.  mySearchBar.placeholder=@"Enter Name or Categary";  //输入框中原始的文字         
  7. mySearchBar.keyboardType=UIKeyboardTypeNamePhonePad;           
  8. [self.view addSubview:mySearchBar];          
  9.  [mySearchBar release];    

3.在 tableview上添加:   

代码  

       //add Table  

        UITableView *myBeaconsTableView = [[UITableView alloc]   initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height-40)      style:UITableViewStylePlain];

        myBeaconsTableView.backgroundColor = [UIColor whiteColor];

        myBeaconsTableView.delegate=self;

       myBeaconsTableView.dataSource=self;

        [myBeaconsTableView setRowHeight:40];

        // Add searchbar   

        searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, 40)];  

        searchBar.placeholder=@"Enter Name";  

        searchBar.delegate = self;  

        myBeaconsTableView.tableHeaderView = searchBar;  

        searchBar.autocorrectionType = UITextAutocorrectionTypeNo;  

        searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone;  

        [searchBar release];  

        [self.view addSubview:myBeaconsTableView];  

        [myBeaconsTableView release];  

 

 4.删除搜索框背景

    [[mSearchBar.subviewsobjectAtIndex:0]removeFromSuperview];

    // 删除searchBar输入框的背景

    for (UIView* subview  in mSearchBar.subviews) {

        if ([subview isKindOfClass:[UITextField class]]) {

            UITextField * searchField = (UITextField*)subview;

            searchField.leftView=nil;//隐藏搜索小图标

            [searchField setBackground:nil];

            [searchField setBorderStyle:UITextBorderStyleNone];

            break;

        }

    }

posted @ 2012-11-20 15:52  Kristen  阅读(223)  评论(0编辑  收藏  举报