遍歷UISearchBar的子視圖,找到輸入框坐在的view,添加背景顏色即可。
代碼如下:
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(10, 22, kScreenW - 10, 30)];
searchBar.tintColor = [UIColor darkGrayColor];
searchBar.barTintColor = [UIColor whiteColor];
searchBar.placeholder = @"請輸入關鍵字";
searchBar.searchBarStyle = UISearchBarStyleMinimal;
[searchBar positionAdjustmentForSearchBarIcon:UISearchBarIconSearch];
searchBar.delegate = self;
[barView addSubview:searchBar];
self.searchBar = searchBar;
// 改變UISearchBar內部輸入框樣式
UIView *searchTextField = nil;
if (kIOSVersion >= 7.0)
{
searchTextField = [[[self.searchBar.subviews firstObject] subviews] lastObject];
}
else
{
// iOS6以下版本searchBar內部子視圖的結構不一樣
for(UIView *subview in self.searchBar.subviews)
{
if ([subview isKindOfClass:NSClassFromString(@"UISearchBarTextField")])
{
searchTextField = subview;
}
}
}
// 改變輸入框背景色
searchTextField.subviews[0].backgroundColor = [UIColor whiteColor];
searchTextField.layer.cornerRadius = 5.0;
