2009-10-24 9 views
8

Chcę dodać niestandardowe tło widoku UIImageView do tła widoku UISearchDisplayController i ustawić kolor tła widoku tabeli, aby usunąć kolor. Próbowałem kilku różnych podejść, ale nie mogłem znaleźć odpowiedniego rozwiązania. Masz pomysł, jak do tego podejść?Jak dodać niestandardowe tło do widoku tabeli UISearchDisplayController?

Uwaga: Nie chcę, aby dodać do widoku hierarchii searchDisplayController za searchResultsTableView, ale raczej nakładać inny widok rodzeństwa poniżej niego)

+0

znaleźliście sposób rozwiązać ten problem? – swalkner

+0

Nie otrzymałem jeszcze rozwiązania. – Boon

+0

Witam, Próbuję zrobić to samo. Udało ci się to sprawić? Dzięki z góry, Matt – Sway

Odpowiedz

25

Można ustawić obraz tła w podobny sposób, jak na głównym stole, tylko ustaw go w metodzie delegowania searchDisplayControllerDidBeginSearch. Na przykład: -

- (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

Ten pracował dla mnie! – adamweeks

+5

Podczas gdy to działa dobrze, prawdopodobnie ma to więcej sensu, aby to zrobić w 'searchDisplayController: didLoadSearchResultsTableView:'. W ten sposób konfigurujesz stół tylko wtedy, gdy jest to konieczne, a nie za każdym razem, gdy rozpoczyna się wyszukiwanie. (Uzyskasz także wygodniejszy dostęp do widoku tabeli, więc możesz użyć 'tableView' zamiast' controller.searchResultsTableView'.) – robotspacer

3

Można też to zrobić gdziekolwiek instancję swoje UISearchDisplayController. W mojej aplikacji robię to w moim UITableViewviewDidLoad metody i zostało dopasowane style między dwie tabele:

- (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; 
} 
Powiązane problemy