Подтвердить что ты не робот

Невозможно изменить цвет оттенка цвета поиска, чтобы он был прозрачным в iOS 8

Обновлен с Xcode 5 до 6, и теперь мой оттенок строки поиска черный.

Попробовал изменить его через правую панель раскадровки > "Оттенок", чтобы очистить цвет, но он все еще черный.

Также попробовал программно:

[self.searchBar setTintColor:[UIColor clearColor]];

Еще черный: (

Любые идеи?

4b9b3361

Ответ 1

Свойство tintColor в барах поиска, подобно UINavigationBar, изменяет цвет кнопок, а также изменяет цвет мигающего курсора, а не фактический фон панели поиска. То, что вы хотите использовать, - это свойство barTintColor.

searchbar.barTintColor = [UIColor orangeColor];
searchbar.tintColor = [UIColor greenColor];

Производит следующий уродливый, но информативный результат:

enter image description here

Если вы хотите иметь полностью прозрачную панель поиска, вам также необходимо установить фоновое изображение:

searchbar.barTintColor = [UIColor clearColor];
searchbar.backgroundImage = [UIImage new];

enter image description here

РЕДАКТИРОВАТЬ: Я бы настоятельно советовал не пересекать и модифицировать подзоны любого объекта UIKit, как это было предложено в других ответах. Из документации Apple:

Для сложных представлений, объявленных в UIKit и других системных рамках, любые Подходы к рассмотрению, как правило, считаются частными и подлежат изменение в любое время. Поэтому вы не должны пытаться извлечь или изменить подпункты для этих типов представлений, представленных системой. Если вы это сделаете, ваш код может сломаться во время будущего обновления системы.

https://developer.apple.com/documentation/uikit/uiview/1622614-subviews

Ответ 2

Мне пришлось изменить его на iOS 9 с помощью Swift 2.0 таким образом:

    let image = UIImage()

    searchBar.setBackgroundImage(image, forBarPosition: .Any, barMetrics: .Default)
    searchBar.scopeBarBackgroundImage = image

Ответ 3

В Swift 3:

Настройка фона в SearchBar для пустого изображения:

    searchBar.setBackgroundImage(image, for: .any, barMetrics: .default)
    searchBar.scopeBarBackgroundImage = image

Ответ 4

Я тоже видел эту проблему на iOS8/XCode 6. Я не получил полупрозрачную панель поиска. searchbar.barTintColor или searchbar.tintColor для очистки цвета не помогли или не показали черную панель поиска.

Единственным обходным решением, которое я нашел, было установить полупрозрачное фоновое png-изображение (alpha = 0.0) и установив searchbar.barTintColor для очистки цвета.