UISearchBar позволяет отображать фоновое изображение, но не цвет?

for subView in searchBar.subviews { if let scopeBar = subView as? UISegmentedControl { scopeBar.backgroundColor = UIColor.blueColor() } } 

Я пытаюсь, чтобы приведенный выше код попытался получить ссылку на scopeBar, а затем установить его цвет фона, но я не могу получить ссылку. Кажется, что только один цикл проходит один раз, подразумевая, что для панели поиска есть только одно подобие. В отладчике на панели поиска появляется переменная экземпляра, называемая _scopeBar с типом (UISegmentedControl *).

  if let topView = searchBar.subviews.first { for subView in topView.subviews { if let cancelButton = subView as? UIButton { cancelButton.tintColor = UIColor.whiteColor() cancelButton.enabled = true } } } 

Второй блок кода работает для доступа к кнопке cancelButton строки поиска.

Фоновое изображение scopeBar можно задать как сплошное цветное изображение.

Во-первых, вам нужно создать UIImage из цвета . Для этого вы можете создать функцию или расширение в UIImage , например, следующий код:

Swift 3

 import UIKit extension UIImage { class func imageWithColor(color: UIColor) -> UIImage { let rect: CGRect = CGRect(x: 0, y: 0, width: 1, height: 1) UIGraphicsBeginImageContextWithOptions(CGSize(width: 1, height: 1), false, 0) color.setFill() UIRectFill(rect) let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()! UIGraphicsEndImageContext() return image } } 

После этого вы можете просто установить backgroundImage на панели областей:

Swift 3

 // Set the scopeBar's background color: searchBar.scopeBarBackgroundImage = UIImage.imageWithColor(color: UIColor.blue) 
  • строка indexPath всегда возвращает 0 в методе didSelectRowAtIndexPath, когда панель поиска активна
  • Как подавить виртуальную слайд-анимацию для клавиатуры?
  • Как очистить цвет фона UISearchBar в iOS10 Swift?
  • Удалить внутреннюю тень UISearchBar
  • Листы разделителя таблиц таблиц UISearchDisplayController сбой при загрузке внутри модального представления, как мне его исправить?
  • UISearchBar внутри настраиваемого навигационного блока
  • UISearchBar скрывается в iOS 8
  • Добавление SearchBar в NavigationBar Objective-C iOS 9
  • Метод UITableview cellForRowAtIndexPath не выполняется?
  • Контроллер навигации из Storyboard наследует от корневого контроллера (iOS11)
  • Скрытие клавиатуры на didHideSearchResultsTableView беспорядочно просматривает поиск
  • Давайте будем гением компьютера.