这个iOS动画块有什么问题?

时间:2011-07-14 06:30:15

标签: iphone ios cocoa-touch

+ (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视图更改为另一个视图,将调用动画,但我有问题,我有一个名为filter的viewController,在那里我有一个名为Reset的Button,它将重置所有的里面的内容 但要显示重置已完成,我想调用

[self AnimateSwitchingWithParent:self From:self To:self];

但结果是我的视图为空白。怎么会这样?任何人都有另一种方式?

1 个答案:

答案 0 :(得分:1)

如果您在重置内容时必须翻转当前视图控制器的视图,请使用transitionWithView:duration:options:animations:completion:方法。

示例

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

旁注

您在问题中的当前实现对于在视图层次结构中切换视图很有用。假设From.viewParentController.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的{​​{1}},这可能与您的意图有所不同,绝对与以前的线上的过渡动画相矛盾。

你绝对不能打电话,

view

直接

根据我的理解,你应该能够删除最后两行。