我正在创建一个需要三个独立搜索框的应用。我希望它们看起来像标准搜索栏,看起来像一个元素(即,如果我堆叠三个搜索栏,它们在每个和渐变之间都有一个分隔符,这使它们看起来像是单独的元素。)
我的问题是,我应该使用这个并使用类似this的内容来删除背景图层,还是应该在视图中使用3个文本字段,使用背景图片等设置样式来查找搜索框?
感谢。
答案 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上的搜索栏背景(它将平铺/拉伸以填充栏)。