Cuadro UISearchDisplayController para UITableView en iOS

  • Tengo un UITable que tiene un UISearchDisplayController .
  • El UITable es menor que el ancho de la pantalla (tiene un ancho de 280px centrado).
  • Cuando UISearchDisplayController en la search bar , la tabla UISearchDisplayController está completamente a la izquierda de la pantalla.
  • Incluso cuando se cambia el marco de la tabla del UISearchDisplayController , todavía obtengo el mismo posicionamiento.

Puse el marco aquí:

 - (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView { tableView.backgroundColor = [UIColor colorWithRed:29.0/255.0 green:30.0/255.0 blue:32.0/255.0 alpha:1]; tableView.rowHeight = self.myTable.rowHeight; tableView.frame = myTable.frame; NSLog(@"search table origin: %f",tableView.frame.origin.x); } 

Aún más extraño, cuando logging la position de la tabla de búsqueda al final, muestra 16. Sin embargo, está en la position 0 en la vista.

Cualquier ayuda es apreciada.

Respondí mi propia pregunta. El marco debe establecerse en este método de delegado:

 - (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView { tableView.frame = self.myTable.frame; } 

Prueba este método simple:

 //--Search display controller frame - (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView { CGRect statusBarFrame = [[UIApplication shanetworkingApplication] statusBarFrame]; [tableView setFrame:CGRectMake(my_table.frame.origin.x, tableView.frame.origin.y, my_table.frame.size.width, my_table.frame.size.height)]; }