UISearchBar 修改背景顏色透明

輸入相關關鍵字在百度中能搜索出來很多,但是都不靠譜,于是Google了一下,在StackOverFlow中找到一個蠻靠譜的方法,試了可行。

1.for(UIView *subviewinsearchBar.subviews) {for(UIView* grandSonViewinsubview.subviews){if([grandSonView isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {

grandSonView.alpha=0.0f;

}elseif([grandSonView isKindOfClass:NSClassFromString(@"UISearchBarTextField")] ){

NSLog(@"Keep textfiedld bkg color");

}else{

grandSonView.alpha=0.0f;

}

}//for cacheViews}//subviews

接下來,我又發現一位博主分享的文章,寫的很詳細,而且解決方案看起來會更加優雅,不像上面給的那樣暴力粗魯。^_^

文章在這里

這里貼出代碼:

- (void)viewDidLoad

{

[super viewDidLoad];//1UIImage* clearImg = [CDViewController imageWithColor:[UIColor clearColor] andHeight:32.0f];//2[_searchBar setBackgroundImage:clearImg];//3[_searchBar setSearchFieldBackgroundImage:clearImg forState:UIControlStateNormal];//4[_searchBar setBackgroundColor:[UIColor clearColor]];

}+ (UIImage*) imageWithColor:(UIColor*)color andHeight:(CGFloat)height

{

CGRect rect= CGRectMake(0.0f,0.0f,1.0f, height);

UIGraphicsBeginImageContext(rect.size);

CGContextRef context=UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [color CGColor]);

CGContextFillRect(context, rect);

UIImage*image =UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();returnimage;

}

修改APP內全局UISearchBar樣式:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

UIColor* myColor = [UIColor colorWithRed:0green:0.48blue:1alpha:1];//set your desired background color hereUIImage* clearImg = [CDViewController imageWithColor:[UIColor clearColor] andHeight:1.0f];

UIImage* coloredImg = [CDViewController imageWithColor:myColor andHeight:32.0f];

[[UISearchBar appearance] setBackgroundColor:[UIColor clearColor]];

[[UISearchBar appearance] setBackgroundImage:clearImg];

[[UISearchBar appearance] setSearchFieldBackgroundImage:coloredImg forState:UIControlStateNormal];returnYES;

}

給ScopeBar設置透明背景:

UIImage* clearImg = [CDViewController imageWithColor:[UIColor clearColor] andHeight:1.0f];

[_searchBar setScopeButtonTitles:nil];

[_searchBar setScopeBarBackgroundImage:clearImg];

[_searchBar setScopeBarButtonBackgroundImage:clearImg forState:UIControlStateNormal];

[_searchBar setScopeBarButtonDividerImage:clearImg forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容