Блок анимации UIView не является подпредставлением представления анимации - PullRequest
4 голосов
/ 29 октября 2010

Я не могу выполнить анимацию с помощью следующего кода:

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
         ];
}

Виды на самом деле меняются местами, но без какой-либо анимации. Это довольно странно. Я также пытался поменять местами mapView и tableView с self.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 Ответ

17 голосов
/ 29 октября 2010

Вы используете неправильные опции.При использовании этого метода вы должны использовать константы UIViewAnimation<b>Option</b>TransitionFlipFromLeft и …Right.

Старые константы UIViewAnimationTransitionFlipFromLeft и …Right должны использоваться только для неблокированныхоснованный метод +setAnimationTransition:….Эти константы имеют значения 1 и 2 соответственно, в то время как те, что я упомянул выше, имеют значения 1 << 20 и 2 << 20, которые совершенно разные. </p>

...