2015-12-16 3 views
1

enter image description hereПочему непрозрачный стиль не работает на SearchBar?

Как я могу сделать цвет поиска оттенком синего?

Я пробовал:

searchBar.opaque = true 

также

searchBar.translucent = false 

Но это не работает. Зачем?

+0

Попробуйте установить '.borderStyle' в строке поиска. .None' – dfri

+0

@dfri borderStyle ??? -_- –

+0

Иногда стиль границ объектов UIView должен быть установлен в .None для другого заполнения связанных prooperties для работы, но игнорировать это. Скорее, посмотрите на этот существующий поток http://stackoverflow.com/questions/26064677/cant-change-search-bar-tint-color-to-be-transparent-in-ios-8 – dfri

ответ

4

Из документации на .opaque

вар непрозрачным: Bool {} получить набор

Значение Boolean, которое определяет, является ли непрозрачной вид.

...

Вам нужно только установить значение для непрозрачной собственности для подклассов UIView, которые привлекают их собственное содержание с помощью DrawRect : метод. Непрозрачное свойство не имеет никакого эффекта для системы при условии, классов, таких как UIButton, UILabel, UITableViewCell, т.д.

Следовательно, .opaque свойство не будет иметь никакого эффекта на родной UISearchBar; поэтому, в примере выше, searchBar.opaque не действует.


Что касается .translucent собственности, документации говорится:

вар полупрозрачная: Bool {получить набор}

значение

Логическое значение, указывающее, является ли строка поиска полупрозрачный (истина) или не (false).

Значение по умолчанию - true. Если в строке поиска есть пользовательский фон , значение по умолчанию истинно, если какой-либо пиксель изображения имеет значение альфа меньше 1,0, и false в противном случае.

Если вы установите для этого свойства значение true на строке поиска с непрозрачным пользовательским фоном , панель поиска применит непрозрачность системы менее 1.0 к изображению.

Если установить это свойство ложь в поисковой строке с полупрозрачным пользовательского фонового изображения, панель поиска обеспечивает непрозрачный фон для изображения с использованием черного, если панель поиска имеет UIBarStyleBlack стиль, белый, если строка поиска имеет UIBarStyleDefault, или строку поиска barTintColor, если определено пользовательское значение.

Следовательно, для достижения прозрачного фона для панели поиска, вам необходимо установить также фоновое изображение для него, который был описан ранее в следующей SO нити

Использование Mike: ответ сек в связанном потоке (Obj-C), мы можем адаптироваться к быстрым в соответствии с:

searchBar.barTintColor = UIColor.clearColor() 
searchBar.backgroundImage = UIImage() 
searchBar.translucent = false 

Это должно обеспечить прозрачную панель поиска.

Смежные вопросы