2012-02-03 103 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來填補酒吧)。