有人知道是否有可能改变UISearchBar的背景?我的意思是内部(见附图),我认为该组件是UITextField。
谢谢!
答案 0 :(得分:4)
我做到了!我不得不继承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 :(得分:1)
Jonathan Naguin回答也不错,但保持代码质量的单行答案是
self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"Searchbox.png"] forState:UIControlStateNormal];
答案 2 :(得分:0)
我认为没有一个API可以让你改变背景颜色。该组件是UITextField的私有子类。即使我们能够通过黑客攻击来实现这种效果,任何人依赖它都是不合适的。