iOS多个搜索框

时间:2012-02-03 14:02:29

标签: objective-c ios

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

我的问题是,我应该使用这个并使用类似this的内容来删除背景图层,还是应该在视图中使用3个文本字段,使用背景图片等设置样式来查找搜索框?

感谢。

1 个答案:

答案 0 :(得分:1)

使用堆叠的三个普通UISearchBars,并将UIImageView放在你想要的背景之后。

然后,在控制器的代码中,在viewDidLoad方法中,为每个搜索栏执行此操作:

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

这在iOS 4及更早版本上运行良好,我认为它在iOS5上运行良好,但如果Apple改变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上的搜索栏背景(它将平铺/拉伸以填充栏)。