UIView动画块不是动画视图的子视图

时间:2010-10-29 19:14:30

标签: ios uiviewanimation uiviewanimationtransition

我无法使用以下代码实现任何动画:

if (self.segmentControl.selectedSegmentIndex == 0) {
    [UIView transitionFromView:tableView
                        toView:mapView
                      duration:1.0
                       options:UIViewAnimationTransitionFlipFromLeft
                    completion:nil
         ];
    }
if (self.segmentControl.selectedSegmentIndex == 1) {
    [UIView transitionFromView:mapView
                        toView:tableView
                      duration:1.0
                       options:UIViewAnimationTransitionFlipFromRight
                    completion:nil
         ];
}

视图实际上是交换,但没有任何动画。这很奇怪。我还尝试将mapViewtableViewself.view.subviews交换为objectAtIndex:0 toolBar}:

if (self.segmentControl.selectedSegmentIndex == 0) {
    [UIView transitionFromView:[self.view.subviews objectAtIndex:1]
                        toView:[self.view.subviews objectAtIndex:2]
                      duration:1.0
                       options:UIViewAnimationTransitionFlipFromLeft
                    completion:nil
         ];
    }
if (self.segmentControl.selectedSegmentIndex == 1) {
    [UIView transitionFromView:[self.view.subviews objectAtIndex:2]
                        toView:[self.view.subviews objectAtIndex:1]
                      duration:1.0
                       options:UIViewAnimationTransitionFlipFromRight
                    completion:nil
         ];
}

1 个答案:

答案 0 :(得分:17)

您使用了错误的选项。使用此方法,您应该使用the constants UIViewAnimationOptionTransitionFlipFromLeft and …Right代替。

旧常量UIViewAnimationTransitionFlipFromLeft…Right应仅用于非基于块的方法+setAnimationTransition:…。这些常数分别具有值1和2,而我上面提到的那些常数具有值<&lt;&lt; 20和2&lt;&lt; 20,完全不同。