遍历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;