iOS: как заменить фон поиска блеска / свечения одним цветом - PullRequest
5 голосов
/ 14 июля 2011

Как убрать блеск / свечение (градиент) с фона панели поиска.Я хотел бы заменить его только одним цветом.

Из этого:

enter image description here

На что-то подобное

enter image description here

Ответы [ 3 ]

1 голос
/ 24 августа 2012

Используйте

searchbar.backgroundImage = //your image here

, и вы можете использовать классную категорию, которую я создал для uiimage, которая будет генерировать изображение на основе цвета

https://github.com/Hackmodford/HMUIImage-imageWithColor

Таквсе вместе это будет выглядеть так:

searchBar.backgroundImage = [UIImage imageWithColor:[UIColor blueColor]];

Это создаст желаемый эффект.

1 голос
/ 14 февраля 2013

1 Чтобы удалить глянцевый фон:

UISearchBar имеет подпредставление класса UISearchBarBackground , просто прокрутите подпредставления и, когда вы найдете подпредставление этого классаустановите его альфа в 0.

Пример RubyMotion:

searchBar.subviews.each { |v| v.alpha = 0 if v.class == UISearchBarBackground }  

2 Чтобы добавить сплошной фон, переопределите метод drawRect:

Пример RubyMotion:

def drawRect(rect)
  blackColor = '#222222'.to_color
  context = UIGraphicsGetCurrentContext()
  CGContextSetFillColor(context, CGColorGetComponents(blackColor.CGColor))
  CGContextFillRect(context, rect)      
end
0 голосов
/ 14 июля 2011

Не думаю, что вы можете, попробовал это сам, и кажется, что это часть API, вот похожий пост , который просит то же самое Причина, по которой FB - это сплошной цвет, заключается в том, что на самом деле приложение FB использует фреймворк Three20. Но даже несмотря на то, что их масштаб уменьшился до 30 мегабайт, в вашем случае это чрезмерный перебор для строки поиска

Даже не знаю, будет ли работать изображение, так как вы не можете сделать область вокруг самой полосы прозрачной или прозрачной, чтобы поместить изображение под ней

...