开发者社区 问答 正文

IOS:修改UISearchBar内部的背景颜色

我知道如何修改和移除UISearchBar的背景颜色
[[self.searchBar.subviews objectAtIndex:0] removeFromSuperview];
self.searchBar.backgroundColor = [UIColor grayColor];

screenshotenter image description here

但是不知道怎么修改内部的背景颜色

screenshotenter image description here

在IOS4.3及以上版本用的。

展开
收起
爵霸 2016-05-27 10:27:21 2698 分享 版权
1 条回答
写回答
取消 提交回答
  • 可以改变内部背景图片的代码:

    UITextField *searchField;
    NSUInteger numViews = [searchBar.subviews count];
    for(int i = 0; i < numViews; i++) {
        if([[searchBar.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { 
            searchField = [searchBar.subviews objectAtIndex:i];
        }
    }
    if(!(searchField == nil)) {
        searchField.textColor = [UIColor whiteColor];
        [searchField setBackground: [UIImage imageNamed:@"yourImage"]];//在这添加灰色的图片
        [searchField setBorderStyle:UITextBorderStyleNone];
    }

    修改UISearchBarIcon的代码:

     UIImageView *searchIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourSearchBarIconImage"]];
    searchIcon.frame = CGRectMake(10, 10, 24, 24);
    [searchBar addSubview:searchIcon];
    [searchIcon release];

    在IOS5以上的版本修改searcBar图标

    - (void)setImage:(UIImage *)iconImage forSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state
    2019-07-17 19:17:12
    赞同 展开评论