关于UISearchBar

关于UISearchBar的一些问题。

1:修改UISearchBar的背景颜色

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

seachBar=[[UISearchBar alloc] init];

seachBar.backgroundColor=[UIColor clearColor];

for (UIView *subview in seachBar.subviews

{  

  if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])

       {  

      [subview removeFromSuperview];  

      break;

    } 

}

  

第二种解决的方法:

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


2:

UISearchBar* m_searchBar = [[UISearchBar allocinitWithFrame:CGRectMake(04432041)];

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 allocinitWithImage:[UIImage imageNamed:@"Images/search_bar_bg.png"]];

[segment addSubview: bgImage];

//<---背景图片

[self.view addSubview:m_searchBar];

[m_searchBar release];


3:取消UISearchBar调用的键盘

 [searchBar resignFirstResponder];



添加UISearchBar的两种方法:

UISearchBar and UITableView - zhangting - 学习是一种乐趣代码
UISearchBar *mySearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.00.0, self.view.bounds.size.width, 45)];
         mySearchBar.
delegate = self;
         mySearchBar.showsCancelButton 
= NO;
         mySearchBar.barStyle
=UIBarStyleDefault;
         mySearchBar.placeholder
=@"Enter Name or Categary";
         mySearchBar.keyboardType
=UIKeyboardTypeNamePhonePad;
         [self.view addSubview:mySearchBar];
         [mySearchBar release];

在 tableview上添加:

UISearchBar and UITableView - zhangting - 学习是一种乐趣代码
//add Table
        UITableView *myBeaconsTableView = [[UITableView alloc] 
                                           initWithFrame:CGRectMake(
00, 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.00.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]; 

原文地址:https://www.cnblogs.com/xingchen/p/2117629.html