需求更改输入框空白处的背景色,并没有直接可配置接口
思路:通过遍历控件的子空间找到相应的view改变其背景色;
searchBar.backgroundImage = [UIImage new];
searchBar.placeholder = @"请输入姓名搜索";
searchBar.barTintColor = [UIColor whiteColor];
searchBar.searchBarStyle = UISearchBarStyleMinimal;
UIView *searchTextfField = [[[searchBar.subviews firstObject] subviews] lastObject];
searchTextfField.subviews[0].backgroundColor = [UIColor colorWithHexString:@"#4F4F53"];
这里之所以说是bug级别的设置就是因为UIsearchBar的searchBarStyle 默认是UISearchBarStyleDefault,默认style设置找到的子控件view的背景色无效……fuck
必须修改为UISearchBarStyleMinimal这个style才有效,坑爹吧,总感觉苹果早晚有一天升级这个骚操作就不行了,这就像很多没有提供可设置接口,但是可以通过kvc赋值的属性一样,在苹果iOS系统版本更迭中就会变了或者消失了,因为这tm都是捷径,苹果官方也没告诉你可以这么弄……