Не удается анимировать рамку или границы UISearchBar - PullRequest
4 голосов
/ 09 марта 2012

Я хочу анимировать положение UISearchBar, но нет никакого эффекта анимации, когда я изменяю свойство frame или bounds UISearchBar (центр, альфа-доза анимировать).
Это iOS SDK 4.2, есть ли ошибка? Я в замешательстве ...

Ответы [ 3 ]

9 голосов
/ 25 апреля 2012

Проблема в том, что некоторые внутренние панели поиска заставляют изменение размера игнорировать анимацию.

Это сработало для меня -

[UIView animateWithDuration:0.2 animations:^ {
                     [searchBar setFrame:searchBarFrame];
                     [searchBar setNeedsLayout];
                 }];

Где searchBarFrame - это фрейм, который вам нужно установить (я сохраняю его до первого изменения размера панели поиска)

1 голос
/ 16 мая 2013

Используйте параметр UIViewAnimationOptionLayoutSubviews:

[UIView animateWithDuration:.25
                      delay:0
                    options:UIViewAnimationOptionLayoutSubviews
                 animations:^{
                     CGRect frame = searchBar.frame;
                     frame.size.width = newWidth;
                     searchBar.frame = frame;
                 } completion:nil
 ];
0 голосов
/ 09 марта 2012

Попробуйте это:

[UIView animateWithDuration:0.3 animations:^{
    self.searchDisplayController.searchBar.frame = CGRectMake(0, 200, 320, 44);
}];
...