UISearchDisplayController frame для UITableView в iOS - PullRequest
4 голосов
/ 08 февраля 2012
  • У меня есть UITable, у которого есть UISearchDisplayController.
  • UITable меньше ширины экрана (его ширина составляет 280 пикселей по центру).
  • Когда я нажимаю на search bar, таблица UISearchDisplayController находится полностью слева от экрана.
  • Даже при смене кадра таблицы UISearchDisplayController я все равно получаю такое же позиционирование.

Я установил кадр здесь:

- (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);
}

Еще более странно, когда я записываю позицию таблицы поиска в конце, она показывает 16. Однако она находится в позиции 0 в представлении.

Любая помощь приветствуется.

Ответы [ 2 ]

20 голосов
/ 08 февраля 2012

Я ответил на свой вопрос. Кадр должен быть установлен в этом методе делегата:

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView  {

    tableView.frame = self.myTable.frame;

}
1 голос
/ 11 февраля 2014

Попробуйте этот простой метод:

//--Search display controller frame

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView
{
    CGRect statusBarFrame =  [[UIApplication sharedApplication] statusBarFrame];

    [tableView setFrame:CGRectMake(my_table.frame.origin.x, tableView.frame.origin.y, my_table.frame.size.width, my_table.frame.size.height)];

}
...