[objective-c]分段的控制停止工作后我对它进行动画处理

标签: ios Objective-C
发布时间: 2016/10/2 13:33:29
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我得到了分段的控制工作,但是当我移动它,它给了我最奇怪的 bug。我可以只单击一次,然后停止工作。

这里是我的动画代码,那个搞分段控制

- (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:

它看起来像你的"动机"只移动而不是实际的分段条.layer。图层就控制器的演示文稿,实际控制器是仍然在它开始的地方。要解决此问题,你会想要也变换到新的位置,在结束了你的动画的实际控制器。

就像这样︰

element.transform = CGAffineTransformMakeTranslation(0,-50);
官方微信
官方QQ群
31647020