IOS UISearchBar Background Color In iOS 9
Thx all , I solve the question by setting the background image to 'nil' , which is a nonexistent image in my app
==================== Update Final Solution ====================
After read more documents . Finally I found a better solution ,
for subView in searchBar.subviews { for view in subView.subviews { if view.isKindOfClass(NSClassFromString("UINavigationButton")!) { let cancelButton = view as! UIButton cancelButton.setTitle("取消", forState: UIControlState.Normal) cancelButton.setTitleColor(UIColor.whiteColor(), forState: .Normal) } if view.isKindOfClass(NSClassFromString("UISearchBarBackground")!) { let imageView = view as! UIImageView imageView.removeFromSuperview() } } }
==================== Update Swift4 ====================
for subView in searchBar.subviews { for view in subView.subviews { if view.isKind(of: NSClassFromString("UINavigationButton")!) { let cancelButton = view as! UIButton cancelButton.setTitleColor(.white, for: .normal) cancelButton.setTitle("取消", for: .normal) } if view.isKind(of: NSClassFromString("UISearchBarBackground")!) { let imageView = view as! UIImageView imageView.removeFromSuperview() } } }
Alternate version as an extension
extension UISearchBar { func removeBackgroundImageView(){ if let view:UIView = self.subviews.first { for curr in view.subviews { guard let searchBarBackgroundClass = NSClassFromString("UISearchBarBackground") else { return } if curr.isKind(of:searchBarBackgroundClass){ if let imageView = curr as? UIImageView{ imageView.removeFromSuperview() break } } } } }}