2

ボタンの有効化または無効化をアニメーション化する方法はありますか? 次のことを試しましたが、成功しませんでした。この時点で、有効なプロパティは不透明度のようにアニメーション化できないと推測していますが、間違っていることを願っています。

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0f];
    theButton.enabled = YES;
    [UIView setAnimationDelegate:self];
    [UIView commitAnimations];

方法がないなんて信じられないsetEnabled:(BOOL)enabled animated:(BOOL)animated

4

5 に答える 5

5

これは実際にはとても簡単です。UIView.transitionWithView任意のビューのスナップショットを取得し、スナップショットからビューの新しい状態にクロス ディゾルブできます。その機能を使用して、 を含む多くの変更をアニメーション化できますenabled

ビュー コントローラーのビューをターゲット ビューとして使用し、 を指定してTransitionCrossDissolveから、通常どおりアニメーション化します。

UIView.transitionWithView(self.view,
    duration: 0.5,
    options: UIViewAnimationOptions.TransitionCrossDissolve,
    animations: { () -> Void in
        self.someButton.enabled = !self.someButton.enabled
}, completion:nil)
于 2015-04-03T21:36:46.310 に答える
1

アニメート可能なプロパティ (UIView beginAnimations:context: を介して) は、frame、bounds、center、transform、alpha (Apple docs から) です。

したがって、アニメーションが正確に何であるかを判断し (色/アルファ/変換アニメーションに関して)、手動アニメーションを作成する必要があります (UIView beginAnimations:context: の代わりに CAAnimation を使用する必要があるかもしれません)。

于 2010-04-11T12:13:24.593 に答える
0

セット:self.buttonSetEvent.customView.alpha = 0.2;

これを試してみてください

    CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:0.15];
[UIView setAnimationRepeatCount:2];
[UIView setAnimationRepeatAutoreverses:YES];

self.buttonSetEvent.customView.alpha = 1;

[UIView setAnimationDelegate:self];
[UIView commitAnimations];
于 2011-02-04T18:51:56.377 に答える
0

ボタンの有効化/無効化を、重なり合う 2 つの画像間の不透明度の変化に分解して、それぞれ 1 つの状態または別の状態にすることができます (つまり、フェードイン/フェードアウトのように見せることができます)。アニメーション完了ハンドラーでは、実際の有効化/無効化の切り替えを行うことができます。

于 2009-11-18T05:36:30.630 に答える
0

ここにアイデアがあります:)

アニメーション ブロック内で、ビューからボタンを削除し、無効な状態で再度追加します。ここでどのようなアニメーションが必要かを指定できます..

于 2009-11-18T05:36:35.820 に答える