Что не так с этим блоком анимации iOS? - PullRequest
0 голосов
/ 14 июля 2011
+ (void) AnimateSwitchingWithParent: (UIViewController *) ParentController From: (UIViewController *) From To: (UIViewController* ) To {

To.view.frame = ParentController.view.bounds;

[UIView transitionFromView:From.view toView:To.view 
        duration:1 
        options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];

ParentController.view = To.view;

[To viewWillAppear:true];
}

это моя функция для создания анимации, которая будет вызываться, если вы хотите изменить представление с 1 на другое представление, но у меня проблема, у меня есть viewController с именем filter, там у меня есть кнопка с именем Reset, которая будет сбрасывать все содержание внутри но чтобы показать что сброс сделали, я хочу позвонить

[self AnimateSwitchingWithParent: self От: self To: self];

но в результате My View было пустым. как это может быть? у кого есть другой способ?

1 Ответ

1 голос
/ 16 июля 2011

Если при сбросе содержимого необходимо перевернуть вид текущего контроллера представления, используйте метод transitionWithView:duration:options:animations:completion:.

Пример

[UIView transitionWithView:self.view
                  duration:1.0f
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:^(void) {
                    [self resetStuff];
                } 
                completion:nil];

СторонаПримечание

Ваша текущая реализация в вопросе будет полезна для переключения представлений в иерархии представлений.Скажем, From.view является подпредставлением ParentController.view, тогда приведенное ниже утверждение заменит From.view на To.view в качестве подпредставления ParentController.view.

[UIView transitionFromView:From.view toView:To.view 
    duration:1 
    options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];

Вам определенно не нужно этого делать,

ParentController.view = To.view;

Это заменит ParentController view, которое может отличаться от того, что вы предполагали, и определенно противоречит анимации перехода на линии ранее.

Вы определенно не должны звонить,

[To viewWillAppear:true];

напрямую.

Насколько я понимаю, вы сможете удалить последние две строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...