2009-10-24 144 views
8

我想添加一個自定義的UIImageView到UISearchDisplayController的表格視圖背景,並將表格視圖的背景顏色設置爲clearColor。嘗試了幾種不同的方法,但找不到合適的解決方案。任何想法如何解決這個問題?如何將自定義背景添加到UISearchDisplayController的表視圖?

注:我不想只會增加searchDisplayController的searchResultsTableView的視圖層次,而是覆蓋其下方的另一個兄弟視圖)

+0

你找到一個方法來解決這個問題? – swalkner 2010-06-02 11:15:25

+0

還沒有得到解決方案呢。 – Boon 2010-06-03 17:07:45

+0

您好, 我正在嘗試自己做同樣的事情。 您是否設法讓此工作? 在此先感謝, 馬特 – Sway 2011-02-03 07:02:17

回答

25

你可以在你會爲你的主表以類似的方式設置背景圖片,將其設置在searchDisplayControllerDidBeginSearch委託方法中。例如: -

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller { 
[controller.searchResultsTableView setDelegate:self]; 
UIImageView *anImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"gradientBackground.png"]]; 
controller.searchResultsTableView.backgroundView = anImage; 
[anImage release]; 
controller.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
controller.searchResultsTableView.backgroundColor = [UIColor clearColor]; } 
+0

這對我工作! – adamweeks 2011-02-08 01:32:26

+5

雖然這可以正常工作,但在'searchDisplayController:didLoadSearchResultsTableView:'中執行此操作可能更有意義。這樣,您只需在必要時設置表格,而不是每次開始搜索。 (你也可以更方便地訪問表視圖,所以你可以使用'tableView'而不是'controller.searchResultsTableView'。) – robotspacer 2013-02-01 21:52:36

3

無論你實例化你的UISearchDisplayController,你也可以做到這一點。在我的應用我在我UITableViewviewDidLoad方法這樣做的,是相匹配的兩個表之間的風格:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.tableView.separatorColor = [UIColor blackColor]; 
    self.tableView.backgroundColor = [UIColor grayColor]; 
    self.tableView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 

    searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    searchController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self]; 
    searchController.delegate = self; 
    searchController.searchResultsDataSource = self; 
    searchController.searchResultsDelegate = self; 

    searchController.searchResultsTableView.separatorColor = self.tableView.separatorColor; 
    searchController.searchResultsTableView.backgroundColor = self.tableView.backgroundColor; 
    searchController.searchResultsTableView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
} 
相關問題