我有一个问题,我不就UIViews和核心动画理解。 这是我想做的事:
- 一个小的视图是通过将它作为它的子视图的一个以上呈现更大的图。
- 当我点击这个视图中的按钮时,视图应尽量减少,并移动到指定的CGRect。
- 然后,视图是从它的父除去。
我第一次提出,尽量减少并移动和删除视图,一切工作正常。 但是,当我再次呈现视图,它显示在修改后的位置(尽管它应该在由一个呼叫的原始位置要设置theView.frame = CGRectMake(600.0, 160.0, 339.0, 327.0);
),而所有包含在视图的行为如同它们是在原来的位置不同应答元件(按钮,textviews等)。 这就像视图和层得到由动画dissynchronized,我不知道如何让他们回到同步。
有类似self.view.layer.frame = CGRectMake(600.0, 160.0, 339.0, 327.0);
没有得到任何东西的权利。
我尽量减少并移动动画代码下面给出:
[CATransaction flush];
CABasicAnimation *scale, *translateX, *translateY;
CAAnimationGroup *group = [CAAnimationGroup animation];
group.delegate = delegate;
group.duration = duration;
scale = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
translateX = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
translateY = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
scale.toValue = [NSNumber numberWithFloat:0.13];
translateX.toValue = [NSNumber numberWithFloat:137.0];
translateY.toValue = [NSNumber numberWithFloat:-290.0];
group.animations = [NSArray arrayWithObjects: scale, translateX, translateY, nil];
group.fillMode = kCAFillModeForwards;
group.removedOnCompletion = NO;
[theView.layer addAnimation:group forKey:@"MyAnimation"];
如何让层回动画后有何看法?