Я пытаюсь установить цвет фона для текстового поля внутри панели поиска. Сначала я сделал это:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].backgroundColor = [UIColor blueColor];
return YES;
}
и это не работает. Цвет остается белым. Хорошо. Я получил его, вызвав этот код:
UISearchBar* searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 150, 44)];
self.tableView.tableHeaderView = searchBar;
[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].backgroundColor = [UIColor blueColor];
из viewDidLoad
. Но это работает только один раз. При открытии другого контроллера вида этого класса цвет фона остается неизменным.
Вы можете попробовать это сами. Просто создайте простое шаблонное приложение для iOS и добавьте UISearchBar
. Затем попробуйте установить цвет фона для его текстового поля с помощью UIAppearance
.
Что не так? Это ошибка iOS? Я знаю, что могу пройтись по всем подпредставлениям панели поиска, найти UITextField
и установить цвет фона, но я хочу выяснить, что происходит.