Установка UISearchBar в пользовательский UITableView вызывает странную анимацию

#ios #objective-c #uitableview #animation #uisearchcontroller

#iOS #objective-c #uitableview #Анимация #uisearchcontroller

Вопрос:

В принципе, я включаю две кнопки, расположенные под панелью навигации. А под этими двумя кнопками находится UITableView с панелью поиска UISearchBar в качестве заголовка. Однако, когда я нажимаю на панель поиска, анимация движется очень странно. После добавления анимации в рамку tableview

Затем я пытаюсь использовать анимацию для перемещения UITableView вместе со строкой поиска наверх, После добавления анимации в рамку tableview

анимация выглядит следующим образом После добавления анимации в рамку tableview

Код, добавленный в табличное представление, выглядит следующим образом:

 - (BOOL) searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    CGRect tableViewFrame = self.myTableView.frame;
    tableViewFrame.origin.y = 0;
    [UIView animateWithDuration:0.1
                     animations:^{
                         self.myTableView.frame = tableViewFrame;
                     }
                     completion:nil];
    return YES;
}
  

Мне интересно, как переместить UISearchBar в верхнюю часть экрана вместе со всем представлением таблицы с плавной анимацией.

Комментарии:

1. Было бы полезно, если бы вы включили другие скриншоты. Вопрос не ясен (по крайней мере, для меня).

Ответ №1:

 - (BOOL) searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    [UIView animateWithDuration:0.1
                         animations:^{
                             [ searchBar setFrame:CGRectMake(searchBar.frame.origin.x, 0, searchBar.frame.size.width, searchBar.frame.size.height)];
                             [self.myTableView setFrame:CGRectMake(myTableView.frame.origin.x, searchBar.frame.size.height, self.myTableView.frame.size.width, myTableView.frame.size.height)];
                         }
                         completion:nil];

    return YES;
}
  

попробуйте этот код