我正在尝试为搜索栏内的文本字段设置背景色。一开始我是这样做的:
- (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
并设置其背景颜色,但是我想知道正在发生什么。