¿Cómo agregar un fondo personalizado a la vista de tabla UISearchDisplayController?

StackOverflow https://stackoverflow.com/questions/1617224

  •  06-07-2019
  •  | 
  •  

Pregunta

Quiero agregar un UIImageView personalizado al fondo de la vista de tabla de UISearchDisplayController y establecer el color de fondo de la vista de tabla en clearColor. Probé un enfoque diferente pero no encontré la solución correcta. ¿Alguna idea de cómo abordar esto?

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

¿Fue útil?

Solución

Puedes establecer la imagen de fondo de la misma forma que lo harías para tu tabla principal, solo configúrala en el método de delegación SearchDisplayController DidBegin Search. 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]; }

Otros consejos

También puede hacer esto donde quiera que cree una instancia de su UISearchDisplayController . En mi aplicación, estaba haciendo esto en mi método UITableView viewDidLoad y coincidía con los 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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top