UITextField外观在UISearchBar中不起作用

时间:2018-06-26 16:44:31

标签: ios objective-c uitextfield uisearchbar uiappearance

我正在尝试为搜索栏内的文本字段设置背景色。一开始我是这样做的:

- (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并设置其背景颜色,但是我想知道正在发生什么。

0 个答案:

没有答案