2009-09-11 121 views
1

我有一个自定义视图。这个自定义视图有两个UIImageViews - imageview1和imageview2。翻转动画不起作用

[UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:2.00]; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(transitionDidStop:finished:context :)]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self cache:YES];如果(frontVisible){ [imageview1 removeFromSuperview]; [self addSubview:imageview2]; } else { [imageview2 removeFromSuperview]; [self addSubview:imageview1]; } frontVisible =!frontVisible; [UIView commitAnimations];


图像从imageview1更改为imageview2和viceversa但我没有得到翻转效果。相反,当另一个图像出现时,我会看到一个图像渐渐消失。

+0

你正在测试设备或模拟器? – nduplessis 2009-09-11 09:34:07

+0

我在模拟器上测试 – Minar 2009-09-11 10:06:27

回答

1

不能确定,但​​我查了一下资料,发现这个:

讨论

如果你想有一个过渡例如在改变视图的外观,从一个视图翻转到另一个 - 然后使用容器视图,UIView的一个实例,如下所示:

  1. 开始一个动画块。
  2. 设置容器视图上的转换。
  3. 从容器视图中删除子视图。
  4. 将新的子视图添加到容器视图。
  5. 提交动画块。

所以说你必须创建为了一个容器以使其正常工作。

+0

当我使用UIViewAnimationTransitionFlipFromLeft时,我确实获得翻转。 (我不知道如何得到这个工作。) 但是,如果我改变过渡到UIViewAnimationTransitionCurlUp我仍然看到其中一个图像淡出另一个出现。 我无法理解CurlUp的特别之处 – Minar 2009-09-11 16:35:28

1

你没有得到curl转换工作的原因是因为curl转换在模拟器中不起作用。它显示为淡入淡出。