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