Ios addsubview动画仅在第一次工作

Ios addsubview动画仅在第一次工作,ios,uiview,uiviewanimation,catransition,Ios,Uiview,Uiviewanimation,Catransition,我正在尝试使用下面的代码添加具有动画效果的子视图,该代码第一次运行良好 CATransition *transition = [CATransition animation]; transition.duration = 1.0; transition.type = kCATransitionMoveIn; transition.subtype = kCATransitionFromRight; [newView.layer removeAllAnimations] [newView.lay

我正在尝试使用下面的代码添加具有动画效果的子视图,该代码第一次运行良好

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中有一个后退按钮,用于从superview中删除视图

[newView removeFromSuperview];

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

与其从superview中删除newView,不如设置一个类似于

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

这样你就可以把它藏起来,不让它露出来。只是一个想法。:-)

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

它在任何时候都可以正常工作。但您必须找到的唯一区别是,您需要在动画期间进行wai。它将不会连续设置动画。这将需要您在持续时间中提到的最短时间