美文网首页
修改UISearchBar的背景色

修改UISearchBar的背景色

作者: FM_0138 | 来源:发表于2020-01-14 11:35 被阅读0次

    原文:https://www.jianshu.com/p/26f951f2a9b5
    UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 但是没有直接操作背景的属性。方法一:是直接将 UISearchBarBackGround移去(这个方法ios13中不可用会闪退)。方法二:是创建一个UIView设置其颜色加载到UISearchBarBaceGround上作为UISearchBar的背景颜色

    方法一:

    UISearchBar *seachBar=[[UISearchBar alloc] init];
    //修改搜索框背景
    seachBar.backgroundColor=[UIColor clearColor];

    //去掉搜索框背景
    //1.
    [[searchbar.subviews objectAtIndex:0]removeFromSuperview];

    //2.
    for (UIView *subview in seachBar.subviews)
    {
    if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
    {
    [subview removeFromSuperview];
    break;
    }
    }

    //3自定义背景
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"40-di.png"]];
    [mySearchBar insertSubview:imageView atIndex:1];

    //4输入搜索文字时隐藏搜索按钮,清空时显示

    -(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    searchBar.showsScopeBar = YES;
    [searchBar sizeToFit];
    [searchBar setShowsCancelButton:YES animated:YES];
    return YES;
    }
    -(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
    searchBar.showsScopeBar = NO;
    [searchBar sizeToFit];
    [searchBar setShowsCancelButton:NO animated:YES];
    return YES;
    }

    //改变搜索按钮文字
    //改变UISearchBar取消按钮字体
    for(id cc in [searchBar subviews])
    {
    if([cc isKindOfClass:[UIButton class]])
    {
    UIButton *btn = (UIButton *)cc;
    [btn setTitle:@"搜索" forState:UIControlStateNormal];
    }

    方法二:

    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;

    //--->背景图片

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

    UIImageView *bgImage = [[UIImageView alloc] initWithImage: [UIImageimageNamed:@"Images/search_bar_bg.png"]];

    [segment addSubview: bgImage];

    //<---背景图片

    [self.view addSubview:m_searchBar];

    [m_searchBar release];

    相关文章

      网友评论

          本文标题:修改UISearchBar的背景色

          本文链接:https://www.haomeiwen.com/subject/bwgoactx.html