Ответ 1
Свойство tintColor
в барах поиска, подобно UINavigationBar, изменяет цвет кнопок, а также изменяет цвет мигающего курсора, а не фактический фон панели поиска. То, что вы хотите использовать, - это свойство barTintColor
.
searchbar.barTintColor = [UIColor orangeColor];
searchbar.tintColor = [UIColor greenColor];
Производит следующий уродливый, но информативный результат:
Если вы хотите иметь полностью прозрачную панель поиска, вам также необходимо установить фоновое изображение:
searchbar.barTintColor = [UIColor clearColor];
searchbar.backgroundImage = [UIImage new];
РЕДАКТИРОВАТЬ: Я бы настоятельно советовал не пересекать и модифицировать подзоны любого объекта UIKit, как это было предложено в других ответах. Из документации Apple:
Для сложных представлений, объявленных в UIKit и других системных рамках, любые Подходы к рассмотрению, как правило, считаются частными и подлежат изменение в любое время. Поэтому вы не должны пытаться извлечь или изменить подпункты для этих типов представлений, представленных системой. Если вы это сделаете, ваш код может сломаться во время будущего обновления системы.
https://developer.apple.com/documentation/uikit/uiview/1622614-subviews