5

このコードでは、アニメーションを使用していますが、一度に画像のアルファ値も変更する必要があります。

-(void)animation
{
    CGPoint point = CGPointMake(imgView.frame.origin.x, imgView.frame.origin.y);
    imgView.layer.position = point;
    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position.x"];
    anim.fromValue  = [NSValue valueWithCGPoint:point];
    anim.toValue    = [NSValue valueWithCGPoint:CGPointMake(point.x + 50, point.y)];
    anim.duration   = 10.0f;
    anim.repeatCount =1;
    anim.removedOnCompletion = YES;

    anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

    [imgView.layer addAnimation:anim forKey:@"position.x"];
    imgView.layer.position = point;
}
4

5 に答える 5

6

これを行うには、のopacityキーを使用できます。CABasicAnimation

CABasicAnimation *alphaAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
alphaAnimation.fromValue = [NSNumber numberWithFloat:1.0];
alphaAnimation.toValue = [NSNumber numberWithFloat:0.0];
[imgView.layer addAnimation:alphaAnimation forKey:@"opacity"];

編集:

指定した値をアニメーション化するには、次を使用できますCAKeyframeAnimation

CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"];
    animation.duration = 10.0f;
    animation.repeatCount = 1;
    animation.values  =  [NSArray arrayWithObjects:
                          [NSNumber numberWithFloat:1.0,
                          [NSNumber numberWithFloat:0.5],
                          [NSNumber numberWithFloat:1.0],nil];
    animation.keyTimes = [NSArray arrayWithObjects:
                          [NSNumber numberWithFloat:0.0],
                          [NSNumber numberWithFloat:5.0],
                          [NSNumber numberWithFloat:10.0], nil];
    [imgView.layer addAnimation:animation forKey:@"opacity"];
于 2013-09-06T12:38:28.783 に答える
0
//your code of changing x position will be here 

以下に書かれている私のコードを実装してください。

 UIView animateWithDuration:1.0 animations:^{
imgView.alpha = 0.5;//must be in between 0 to 1
 }];

あなたが言っているようにイメージビューが次の位置に移動したら、コードの下に書きます

//次の位置のイメージビューのコード..コードの下に実装します...

 UIView animateWithDuration:0.5 animations:^{
imgView.alpha = 1.0;//must be in between 0 to 1
 }];

それが機能しているかどうかを教えてください!!!! それが役に立てば幸い...

ハッピーコーディング!!!

于 2013-09-06T12:37:29.237 に答える
0

self.viewこれは 500 ミリ秒で「見えなくなります」。

呼び出す前に行ったことはすべて「すぐに」設定され、「アニメーション」ブロック内で設定したすべてのこと (新しいフレーム座標の設定など) は、指定された期間にわたって補間されます。

        [UIView animateWithDuration:0.50
                              delay:0.0
                            options:(   UIViewAnimationOptionAllowUserInteraction
                                     |  UIViewAnimationOptionBeginFromCurrentState
                                     |  UIViewAnimationOptionCurveEaseInOut)

                         animations:^ {
                             self.view.alpha = 0.0f ;
                         }

                         completion: ^(BOOL){
                             [self.view removeFromSuperview] ;
                             self.view = nil ;
                         }
         ] ;
于 2013-09-06T12:38:59.927 に答える
0
于 2013-09-06T12:39:52.467 に答える