分段控件在我设置动画后停止工作

时间:2014-07-03 00:54:08

标签: ios objective-c

我让分段控件工作,但是当我移动它时,它给了我最奇怪的错误。我只能点击一次然后停止工作。

这是我的动画代码,它正在弄乱分段控件

- (void)moveUnitsUp:(UIView*) element {

    // Create an animation that will change the position of a layer
    CABasicAnimation *mover = [CABasicAnimation animationWithKeyPath:@"position"];
    [mover setDuration:0.12];
    [mover setBeginTime:CACurrentMediaTime()+0];

    // Setting starting position
    CGPoint initialPoint = [element.layer position];
    [mover setFromValue:[NSValue valueWithCGPoint:initialPoint]];

    // Setting ending position
    CGPoint finalPoint = CGPointMake(initialPoint.x, initialPoint.y - 50);
    [mover setToValue:[NSValue valueWithCGPoint: finalPoint]];

    // MAKE SURE IT DOESN'T MOVE BACK TO STARTING POSITION
    [mover setRemovedOnCompletion:NO];
    [mover setFillMode:kCAFillModeForwards];

    // Add it to the layer
    [element.layer addAnimation:mover forKey:@"BigMove"];

    // SET THE POSITION TO THE STARTING POSITION
    [element.layer setPosition:finalPoint];

}

非常感谢你的帮助: - )

1 个答案:

答案 0 :(得分:0)

看起来你的“移动者”只移动.layer而不是实际的分段条。该层只是控制器的表示,实际的控制器仍然在它开始的位置。要解决此问题,您还需要将实际控制器转换为动画结束时的新位置。

类似的东西:

element.transform = CGAffineTransformMakeTranslation(0,-50);