修改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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM