UISearchBar在文本中有背景

时间:2011-05-20 08:32:43

标签: ios background ios4 uitextfield uisearchbar

有人知道是否有可能改变UISearchBar的背景?我的意思是内部(见附图),我认为该组件是UITextField。

enter image description here

谢谢!

3 个答案:

答案 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的私有子类。即使我们能够通过黑客攻击来实现这种效果,任何人依赖它都是不合适的。