2016-03-25 5 views
2

このコードを使用してアニメーションのようにロックを解除するスライドを作成していますが、right to leftからアニメートできません。アニメーションのようにロックを解除するスライドに関する支援が必要

どうすれば右から開始し、左にアニメーションできますか?

-(void)slideToCancel { 
    CALayer *maskLayer = [CALayer layer]; 
    // Mask image ends with 0.15 opacity on both sides. Set the background color of the   layer 
    // to the same value so the layer can extend the mask image. 
    maskLayer.backgroundColor = [[UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.50f] CGColor]; 
    maskLayer.contents = (id)[[UIImage imageNamed:@"slidetocancel.png"] CGImage]; 

    // Center the mask image on twice the width of the text layer, so it starts to the left 
    // of the text layer and moves to its right when we translate it by width. 
    maskLayer.contentsGravity = kCAGravityCenter; 
    maskLayer.frame = CGRectMake(_slideToCancelLbl.frame.size.width * -1, 0.0f, _slideToCancelLbl.frame.size.width * 2, _slideToCancelLbl.frame.size.height); 
    // Animate the mask layer's horizontal position 
    CABasicAnimation *maskAnim = [CABasicAnimation animationWithKeyPath:@"position.x"]; 
    maskAnim.byValue = [NSNumber numberWithFloat:_slideToCancelLbl.frame.size.width]; 
    maskAnim.repeatCount = 1e100f; 
    maskAnim.duration = 1.5f; 
    [maskLayer addAnimation:maskAnim forKey:@"slideAnim"]; 
    _slideToCancelLbl.layer.mask = maskLayer; 
} 

答えて

0

負のbyValueを使用するだけで済みます。ただし、投稿したコードは、スライドのジェスチャーに反応するものではなく、缶詰のアニメーションです。

+0

私は負の値を試しましたが、奇妙なアニメーション動作をしています。私は物事の重力がいくつかの役割を果たしているが、右から左にアニメーション化する方法。 –

+0

私はcontentsGravityを使用する前に試していません。代わりにbyValueを取り除き、代わりにfromValueとtoValueを設定するのはどうですか? –

+0

あなたはあなたの最後のコメントを答えとして更新できますので、私はそれを根絶して正しい答えとしてチェックしてください。 –

関連する問題