Uiview CAKeyframeAnimation不适用于子类
我用一个动画移动一个按钮,如果我在UIVIewController中使用它,一切都很好,如果我试图用这个动画子类化UIView,我看不到它,按钮出现在端点,但我看不到它移动。 错在哪里 这是我的代码:Uiview CAKeyframeAnimation不适用于子类,uiview,subclass,cakeyframeanimation,Uiview,Subclass,Cakeyframeanimation,我用一个动画移动一个按钮,如果我在UIVIewController中使用它,一切都很好,如果我试图用这个动画子类化UIView,我看不到它,按钮出现在端点,但我看不到它移动。 错在哪里 这是我的代码: - (void) moveButton:(UIButton *)button fromPoint:(CGPoint)startPoint toPoint:(CGPoint)endPoint { CGMutablePathRef thePath = CGPathCreateMuta
- (void) moveButton:(UIButton *)button fromPoint:(CGPoint)startPoint toPoint:(CGPoint)endPoint {
CGMutablePathRef thePath = CGPathCreateMutable();
CGPathMoveToPoint(thePath, NULL, startPoint.x, startPoint.y);
NSMutableArray *timings = [NSMutableArray array];
NSMutableArray *keytimes = [NSMutableArray array];
// Start
[timings addObject:[self getTiming:kCAMediaTimingFunctionEaseIn]];
[keytimes addObject:[NSNumber numberWithFloat:0.0]];
// Bounce
[timings addObject:[self getTiming:kCAMediaTimingFunctionEaseIn]];
[keytimes addObject:[NSNumber numberWithFloat:1.0]];
CAKeyframeAnimation * animation;
animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = NO;
animation.duration = 2;
animation.path = thePath;
animation.timingFunctions = timings;
animation.keyTimes = keytimes;
[[button layer] addAnimation:animation forKey:nil];
[[button layer] setPosition:CGPointMake(endPoint.x,endPoint.y)];
}
您的路径移动到起点,不做任何其他操作?移动到起点,转到终点,我很愚蠢,我错过了CGPathMoveToPoint(路径,NULL,endPoint.x,endPoint.y);但同样的,我看不到动画!移动+移动?你应该做移动+直线所以,对于移动+直线来说,只有两点的路径是超级致命的。OK,我是个傻瓜!问题出在CGPathMoveToPoint和keytime上,我知道这对于2分来说是一个很大的问题,但这是我第一次使用它来学习新东西:)