SearchBar改变背景颜色

在许多需求下需要改变SearchBar的背景图片今天试了一下代码如下:

方法一:

复制代码
 
    UISearchBar *searchBar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 100, 320, 44)];
    [self.view addSubview:searchBar];
    
    for (UIView *obj in [searchBar subviews]) {
        for (UIView *objs in [obj subviews]) {
            if ([objs isKindOfClass:NSClassFromString(@"UISearchBarBackground")]){
                [objs removeFromSuperview];
            }
        }
        if ([obj isKindOfClass:NSClassFromString(@"UISearchBarBackground")]){
            [obj removeFromSuperview];
        }
    }

   searchBar.backgroundColor=[UIColor colorWithRed:0.9686 green:0.9686 blue:0.9686 alpha:1.0];

 
复制代码

方法二:

复制代码
- (void)viewDidLoad
{
    [super viewDidLoad];

    UISearchBar *searchBar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 100, 320, 44)];
    [self.view addSubview:searchBar];
    searchBar.backgroundImage = [self imageWithColor:[UIColor clearColor]];
    
}
- (UIImage *)imageWithColor:(UIColor *)color
{
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    
    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);
    
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return image;
}
复制代码

这两种方法都可以改变searchBar 的背景颜色,也可以通过断点调试来查看苹果内部信息。

posted @ 2014-04-15 17:35  勿忘初心,方得始终  阅读(755)  评论(0编辑  收藏  举报