addsubview动画仅适用于第一次

时间:2012-11-17 10:05:54

标签: ios uiview uiviewanimation catransition

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

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作为子视图时,它首先将视图添加为子视图(没有动画),再次添加动画。

3 个答案:

答案 0 :(得分:0)

为什么不设置像

这样的框架,而不是从superview中删除newView
newView.frame = CGRectMake(0, -500, CGRectGetWidth(newView.frame), CGRectGetHeight(newView.frame));

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

答案 1 :(得分:0)

从超级视图中删除视图时,它会保持帧的原样。因此,我认为您必须将newView位置更改为再次放置在新位置。

答案 2 :(得分:0)

它一直都能正常工作。但是你必须找到的唯一区别是你需要在动画期间使用wai。它不会持续动画。这需要您在持续时间内提及的最短时间。