2009-10-24 12 views
8

Quiero añadir un UIImageView costumbre de vista de tabla fondo de UISearchDisplayController y ajuste de vista de tabla color de fondo a clearColor. Intenté un enfoque diferente pero no pude encontrar la solución correcta. ¿Alguna idea de cómo abordar esto?Cómo agregar un fondo personalizado a la vista de tabla de UISearchDisplayController?

Nota: no quiero añadir a la jerarquía de vista de la searchDisplayController searchResultsTableView, sino más bien superponer otra vista hermanos debajo de ella)

+0

¿Ha encontrado una manera de resolver esto? – swalkner

+0

no ha conseguido una solución para esto todavía. – Boon

+0

Hola, Estoy tratando de hacer lo mismo. ¿Lograste hacer esto funcionar? Gracias de antemano, Matt – Sway

Respuesta

25

Puede configurar la imagen de fondo de una manera similar si se tratara de su mesa principal, sólo se configurarlo en el método delegado searchDisplayControllerDidBeginSearch. Por ejemplo: -

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

¡Esto funcionó para mí! – adamweeks

+5

Si bien esto funciona bien, probablemente tenga más sentido hacer esto en 'searchDisplayController: didLoadSearchResultsTableView:'. De esta forma, solo está configurando la tabla cuando es necesario, en lugar de cada vez que se inicia una búsqueda. (También obtiene un acceso más conveniente a la vista de tabla, por lo que puede usar 'tableView' en lugar de' controller.searchResultsTableView'.) – robotspacer

3

También puede hacer esto dondequiera que usted instancia su UISearchDisplayController. En mi aplicación que estaba haciendo esto en mi método UITableViewviewDidLoad y estaba cumplan el criterio de estilos entre las dos tablas:

- (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; 
} 
Cuestiones relacionadas