UISearchBar с фоном в тексте - PullRequest
1 голос
/ 20 мая 2011

Кто-нибудь знает, возможно ли изменить фон UISearchBar?Я имею в виду внутри (см. Изображение в приложении), я думаю, что компонент является UITextField.

enter image description here

Спасибо!

Ответы [ 3 ]

4 голосов
/ 23 мая 2011

Я сделал это! Мне пришлось создать подкласс UISearchBar и переопределить layoutSubviews с помощью:

- (void)layoutSubviews {
    UITextField *searchField;
    NSUInteger numViews = [self.subviews count];
    for(int i = 0; i < numViews; i++) {
       if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) {
        searchField = [self.subviews objectAtIndex:i];
       }
    }
    if(!(searchField == nil)) {
       searchField.textColor = [UIColor whiteColor];
       [searchField setBackground: [UIImage imageNamed:@"SearchBarBackground.png"] ];
       [searchField setBorderStyle:UITextBorderStyleNone];
    }

    [super layoutSubviews];
}

Изображение является полным фоновым изображением!

1 голос
/ 05 июля 2013

Ответ Джонатана Нагуина также хорош, но однострочный ответ для поддержания качества кода:

self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"Searchbox.png"] forState:UIControlStateNormal];
0 голосов
/ 20 мая 2011

Я не думаю, что есть API, который позволяет вам изменять цвет фона.Этот компонент является частным подклассом UITextField.Никому не следует полагаться на это, даже если мы сможем добиться эффекта с помощью хака.

...