0

私は1つのアプリケーションを開発しています。10個の画像があります。HTMLのマーキー効果のように、その画像を右から左に移動したいです。その画像は無限に移動しています。左から右へ。

4

3 に答える 3

1

私はこのようなことを試してみます:

- (void)startAnimatingImages
{
    for (UIImage* aImage in yourImageArray)
        {
            [self animateLabelToTheRight:aImage];
        }
}

- (void)animateLabelToTheRight:(UIView *)yourView
{
    [UIView animateWithDuration:0.3 
                     animations:^{ view.frame = CGRectMake(view.frame.origin.x + 35, view.frame.origin.y, image.frame.size.width, image.frame.size.height); } 
                     completion:^{ [self animateLabelToTheLeft:yourView] } ];
}

- (void)animateLabelToTheLeft:(UIView *)yourView
{
    [UIView animateWithDuration:0.3 
                     animations:^{ yourView.frame = CGRectMake(yourView.frame.origin.x - 35, yourView.frame.origin.y, yourView.frame.size.width, yourView.frame.size.height); } 
                     completion:^{ [self animateLabelToTheRight:yourView] } ];
}
于 2012-05-10T08:59:06.543 に答える
0

@Devの回答で述べたように、これはアニメーションで行うことができますが、アニメーション化する場合は、画像を移動するだけであれば画像を変更する必要はありません.

たとえば、このコードは、選択した写真を撮り、画面の左上から左下に移動し、右から左に移動するように変更でき、 で無限に繰り返すように既に設定されてい[UIView setAnimationRepeatCount:-1];ます。

マーキー効果を実現するには、アニメーションが終了してリセットされる前に画像を画面外で完全にアニメーション化して、画像が画面の片側からはみ出し、他の。

- (void)animateImage
{
    UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myImage.png"]];
    [self.view addSubview:myImageView];
    [myImageView setFrame:CGRectMake(0, 0, 50, 50)];

    [UIView beginAnimations:@"myAnimation" context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationRepeatCount:-1];

//    [UIView setAnimationDidStopSelector:@selector(callSomeThingElse)];

    [myImageView setFrame:CGRectMake(0, 430, 50, 50)];
    [UIView commitAnimations];
}
于 2012-05-10T08:51:24.303 に答える
0

このタイプの動画にはアニメーションが必要です。このコードを試すと、問題は解決します:

UIImageView *animationimage;

  animationimage.animationImages = [NSMutableArray arrayWithObjects:

                                      [UIImage imageNamed:@"Splash1.png"],
                                      [UIImage imageNamed:@"Splash2.png"],
                                      [UIImage imageNamed:@"Splash3.png"],
                                      [UIImage imageNamed:@"Splash4.png"],
                                      [UIImage imageNamed:@"Splash5.png"],nil];

    // all frames will execute in 1.0 seconds
    animationimage.animationDuration = 1.0;
    // repeat the annimation forever
    animationimage.animationRepeatCount = 0;

異なるシーケンシャル イメージがあることの 1 つは、私のコードでリンクが必要であることを覚えておいてください。

お役に立てば幸いです。

于 2012-05-10T07:58:12.813 に答える