0

ビューの読み込み時に UIView アニメーションを使用してボタンを移動する必要があります。ボタンを押すと、ほぼ同じアニメーションが別のビューで機能します。これは私のViewDidLoadです

HTMLButton.hidden = NO;
HTMLButton.enabled = NO;

[UIView animateWithDuration:1.0
                 animations:^{
                     CGRect HTMLRect = HTMLButton.frame;
                     HTMLRect.origin = CGPointMake(HTMLRect.origin.x, HTMLRect.origin.y + 70);
                     HTMLButton.frame = HTMLRect;
                     NSLog(@"Animation Called");
                 }];

NSLog はコンパイルされますが、アニメーションはまったくありません。ここでアニメーションを呼び出すことはできませんか、何か間違っていますか?

助けてくれる人に感謝します

編集:別のボタンで別のIBActionから呼び出された同じアニメーションを使用しましたが、アニメーションはまだ機能しません

4

1 に答える 1

0

viewDidLoad または viewDidAppear 内部がアニメーションに干渉している可能性があります。viewDidLoad には他のタスクが存在する可能性があるため、フレーム変更アニメーションを呼び出したときにボタンが完全にロードされません。これで問題が解決するかどうかはわかりませんが、私に起こった場合は、間違いなくこれを試してみます:

double delayInSeconds = 0.2; //Or you may play with it further
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){

    [UIView animateWithDuration:1.0
             animations:^{
                 CGRect HTMLRect = HTMLButton.frame;
                 HTMLRect.origin = CGPointMake(HTMLRect.origin.x, HTMLRect.origin.y + 70);
                 HTMLButton.frame = HTMLRect;
                 NSLog(@"Animation Called");
             }];

});

これにより、アニメーションの呼び出しが少し遅れます (ユーザーが 0.2 秒のラグを理解することはできません)。そのため、ViewController は初期化を行うのではなく、待機状態になります。

于 2013-04-27T20:03:36.170 に答える