2016-06-17 2 views
0

В моем приложении я добавил этот SearchBar:UISearchbar пользовательских

Image1

Я пытался настроить кнопку, и он прекрасно работает, я использую

searchbar.setImage(UIImage(named: "Filter_icon"), forSearchBarIcon: .Bookmark, state: .Normal) 

и значок кнопки изменилось правильно. Теперь мне нужно изменить цвет значка? Как я могу сделать?

Заранее спасибо.

ответ

1

Попробуйте настроить режим рендеринга изображений в своем каталоге активов.

iOS выбирает режим рендеринга в зависимости от контекста, режим рендеринга изображений будет установлен на оригинал, когда режим рендеринга изображений UIButton будет установлен в шаблон.

Вы можете заставить свое поведение в инспекторе атрибутов.

Сначала выберите изображение в своем каталоге активов. Вы увидите внизу инспектора Render as.

Template image переопределит все цвета к оттенку вида.
Выберите Original image, чтобы сохранить цвет вашего изображения. Default - это поведение, описанное выше.

Конечно, ваше изображение должно быть оранжевым (например, моя шина зеленая).

enter image description here

+0

Это выглядит великолепно, поэтому, если я выберу шаблон, я могу переопределить цвет значка, если пойму. Но какой метод я должен использовать? – Jigen

+0

Это зависит от значения цвета. Если оранжевый цвет является глобальным оттенком вашего приложения, или если он изменяется со временем, шаблон является хорошим решением, потому что вы можете переключать цвет, изменяя свойство tint для представления/окна. Tint наследуется, так что дочерние представления будут иметь тот же оттенок, что и их родительский элемент, если они не переопределены. Tint - это свойство 'UIView', а не свойство изображения. – Crazyrems

1

Самый простой способ изменить значок цвет и сделать как оригинальный цвет

searchBar.setImage(UIImage(named: "Filter_icon")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), forSearchBarIcon: .Bookmark, state: .Normal) 
searchBar.showsBookmarkButton = true 
0

я, наконец, решить мою установку двух различных кнопок закладки проблему. Один синий и один серый, как это:

searchbar.setImage(UIImage(named: "Filter_icon_blue"), forSearchBarIcon: .Bookmark, state: .Normal) 
searchbar.setImage(UIImage(named: "Filter_icon_gray"), forSearchBarIcon: .Bookmark, state: .Normal) 

создать два image_set в assets.xcassets и я изменить это программно.

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