1
- (void)viewDidLoad
{
    [super viewDidLoad];


        [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:4];
    [UIView setAnimationRepeatCount:50];
    [UIView setAnimationRepeatAutoreverses:NO];

    CGPoint abc =chem1.center;

    abc.y= 480;
    chem1.center=abc; 

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:4];
    [UIView setAnimationRepeatCount:50];
    [UIView setAnimationRepeatAutoreverses:NO];

    CGPoint def =chem2.center;

    def.y= 480 ;
    chem2.center=def; 

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:4];
    [UIView setAnimationRepeatCount:50];
    [UIView setAnimationRepeatAutoreverses:NO];

    CGPoint hij =nat1.center;

    hij.y= 480;
    nat1.center=hij; 

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:4];
    [UIView setAnimationRepeatCount:50];
    [UIView setAnimationRepeatAutoreverses:NO];

    CGPoint klm =nat2.center;

    klm.y= 480;
    nat2.center=klm;  
}

助けていただければ幸いです

4

1 に答える 1

0

あなたの質問には、アニメーション画像をタップする方法と画像をドラッグする方法の 2 つの部分があります。


アニメーション画像をタップする方法。

バックグラウンド

ビュー(またはより正確にはそのレイヤー)をアニメーション化する場合、変更するプロパティ(あなたの場合はposition(設定によるcenter))はすぐに最終値に変更されます。アニメートするだけの場合 (CABasicAnimation のように)、適切な はまったく変更されない可能性があります。

これは、ビュー (またはレイヤー) をタップしようとすると、移動した位置 (最終的な位置 (アニメーションの継続時間または繰り返し回数にかかわらず) にあることを意味します)。

動くレイヤーのヒットテスト

動いているものをヒット テストできるようにするにはpresentationLayer、タップしようとしているビューのレイヤーに対してヒット テストを実行する必要があります。

CGPoint touchPoint = [gestureRecognizer locationInView:[self view]];

if ([[[[self movingView] layer] presentationLayer] hitTest:touchPoint]) {
    // Yeah, you hit the moving (animating) layer!
}

ユーザーが移動ビュー (この場合は画像) をタップしたので、ドラッグの処理を開始できます。

画像をドラッグする方法

画像をドラッグしているときは、ユーザーの指が画像をドラッグしている場所にレイヤーを移動します。

ビューを移動するアニメーションに削除

最初に、そのビューの進行中のアニメーションをキャンセルする必要があります (アニメーションに名前を付けると、1 つのアニメーションのみをキャンセルできます。

[[[self movingView] layer] removeAllAnimations];

または、動きのアニメーションに名前を設定した場合。

[[[self movingView] layer] removeAnimationForKey:@"nameOfMovingAnimation"];

ビューをユーザーの指の位置に移動します

次に、ユーザーが指を動かしたときにビューの位置を (継続的に) 更新する必要があります。指の動きとビューの間の時間が長くなり、アプリケーションが遅れているように見えるため、これをアニメーション化しないでください。ドラッグしながらアニメーションすると、滑らかに見えません。

注:あなたの質問は、ユーザーが画像をドラッグしたときに何をしたいのか、または画像をドロップしたときに何が起こるのかを述べていないためです。説明ではこれ以上先に進めません。

もっと助けが必要ですか?

Web (または StackOverflow) で「iOS ドラッグ ビュー」などを検索すると、imageView をドラッグする方法に関する詳細情報が見つかる可能性があります。

それ以外の場合は、ここまで来たら、StackOverflow で別の質問をしてください (つまり、動いている画像をタップすると動きが止まります)。

于 2012-04-14T10:08:22.230 に答える