2012-02-03 106 views
1

我正在创建一个需要三个独立搜索框的应用程序。我希望它们看起来像标准搜索栏,看起来像一个元素(即,如果我堆叠三个搜索栏,它们在每个和渐变之间都有一个分隔符,这使得它们看起来像单独的元素)。iOS多个搜索框

我的问题是,我应该去这个并使用像this这样的东西去除背景层,或者我应该在视图中使用3个文本字段,使用背景图像等进行设计,使其看起来像搜索框?

谢谢。

回答

1

使用三个正常的UISearchBars堆叠并放置一个UIImageView与背后你想要的背后。

然后,在你的控制器的代码,在您的viewDidLoad方法,对于每一个搜索栏,做到这一点:

//remove the background image view of the searchbar, but leave the textfield 
[[searchBar.subviews objectAtIndex:0] removeFromSuperview]; 

能正常工作在iOS 4和更早版本,我认为这是对iOS5的罚款很好,但它是一个有点不安全的,如果苹果曾经改变的UISearchBar的内部,所以对于未来的校对的目的,你可能真的想这样做来代替:

if ([UISearchBar instancesRespondToSelector:@selector(setBackgroundImage:)]) 
{ 
    //iOS 5 and later 
    searchBar.backgroundImage = [UIImage imageNamed:@"transparent.png"]; 
} 
else 
{ 
    //iOS 4 and earlier 
    [[searchBar.subviews objectAtIndex:0] removeFromSuperview]; 
} 

然后,只需添加单个像素transparent.png到项目在iOS5上用作搜索栏背景(它将平铺/ s tretch来填补酒吧)。