zoukankan      html  css  js  c++  java
  • 修改UISearchBar的背景颜色

    当你看到这篇博客你就已经发现了用_searchBar.backgroundColor = [UIColor clearColor];来设置UISearchBar的颜色完全没有效果;

    并且,有些方法是想通过遍历出UISearchBarBackground来移除它实现背景透明,也并没有什么卵用。

    下面这个方法,你不用纠结它是怎么实现的,直接复制拿去用:

    _searchBar.backgroundImage = [self imageWithColor:[UIColor clearColor] size:_searchBar.bounds.size];
    /** 取消searchBar背景色 */ 
    - (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size
    {
        CGRect rect = CGRectMake(0, 0, size.width, size.height);
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        
        CGContextSetFillColorWithColor(context, [color CGColor]);
        CGContextFillRect(context, rect);
        
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
        return image;
    }

    这样你就可以发现背景色没有了

    别急,还没完,在此之后你还可以设置自己想要的颜色,还可以设置背景图

    /** 设置背景图片 */
    [_searchBar setBackgroundImage:[UIImage imageNamed:@"imageView"]];

    /** 设置背景色 */
    [_searchBar setBackgroundColor:[UIColor redColor]];

    /** 设置文本框背景 */
    [_searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"imageView"] forState:UIControlStateNormal];

     修改搜索框的背景色:

    UITextField *searchField=[_searchBar valueForKey:@"_searchField"];
    searchField.backgroundColor = GlobalColor;
  • 相关阅读:
    list浅析
    C#尝试读取或写入受保护的内存。这通常指示其他内存已损坏(catch不起作用)
    浅析C#线程同步事件-WaitHandle
    C#操作xml方法1
    C#简单的操作csv文件
    C#的int类型?,??,~的意思,string类型空值赋值
    将多个exc表格汇总于一个表格中
    C#禁止双击标题栏等操作
    c#泛型
    c#session
  • 原文地址:https://www.cnblogs.com/Walking-Jin/p/5754519.html
Copyright © 2011-2022 走看看