0

我正在尝试使用下面第一次正常工作的代码添加具有动画效果的子视图。

CATransition *transition = [CATransition animation];
transition.duration = 1.0;
transition.type = kCATransitionMoveIn; 
transition.subtype = kCATransitionFromRight;

[newView.layer removeAllAnimations]
[newView.layer addAnimation:transition forKey:nil];
[self.masterview addSubview:newView];

newView 中有一个后退按钮,可以从超级视图中删除视图。

[newView removeFromSuperview];

现在,当我尝试使用上面的代码再次将 newView 添加为子视图时,它首先将视图添加为子视图(没有动画),然后再次添加动画。

4

3 回答 3

0

而不是从superview中删除newView,为什么不可以设置一个像

newView.frame = CGRectMake(0, -500, CGRectGetWidth(newView.frame), CGRectGetHeight(newView.frame));

这样您就可以将其隐藏起来。只是一个想法。:-)

于 2012-11-17T10:57:09.280 回答
0

当您从其超级视图中删除视图时,它会保持其框架不变。因此,我认为您必须更改 newView 位置才能再次放置在新位置。

于 2012-11-17T11:47:25.170 回答
0

它在所有时间都可以正常工作。但是您必须找到的唯一区别是您需要在动画期间等待。它不会连续动画。这将花费您在持续时间中提到的最短时间。

于 2013-10-07T11:55:06.830 回答