您的位置:首页 > 产品设计 > UI/UE

UISearchBar 常用方法

2014-03-21 13:54 176 查看

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 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调用的键盘

[searchBar resignFirstResponder];

添加UISearchBar的两种方法:

代码

UISearchBar *mySearchBar = [[UISearchBar alloc]

initWithFrame:CGRectMake(0.0, 0.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];

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;

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: