2011-12-05 4 views
0

frame.size.height0に変更してを使用してUIButtonを非表示にしています。ただし、アニメーションが開始されるとすぐに、丸められた矩形と背景がすぐに消え、ボタンのテキストはビューの境界線からはみ出します。UIButtonの高さの変更をイメージのワーピングなしでどのようにアニメーション化できますか?

CGRect newFrame = button.frame; 
newFrame.size.height = 0; 
[UIView animateWithDuration:2.0 animations:^{ 
    button.frame = newFrame; 
}]; 

私はこれが唯一の私はアニメーションの開始時に、ボタンがあると思わ0に高さを設定していたときに起こることに気付きました:

私が使用しているコードは非常に簡単です一度最終状態で再描画されます。アニメーションは、この静的イメージを元のサイズから最終サイズにスケーリングすることによって実行されます。高さが0のボタンは見ることができないので、丸めの全体が消えてしまいます(ボタン上のテキストは別のビューであるため)。

アニメーションが奇妙に見えないようにするには、これを行うより良い方法が必要です。どのようにアニメーションを私が望むように動作させることができますか?

答えて

0

このようなことをするとうまくいくのですか?

CGRect newFrame = button.frame; 
newFrame.size.height = 1; 

[UIView animateWithDuration:2.0 
       animations:^{button.frame = newFrame;} 
       completion:^{button.hidden = YES;}]; 

あなたがシステムを使用している場合は、RECTボタンを丸め、それはまた、彼らは一定のレベル以下にリサイズされて好きではない、それはカスタムボタンとのより良い仕事かもしれないかもしれません。

0

アニメーションでボタンのアルファ値を0に設定するだけではどうですか?または、その高さをアニメートする必要がありますか?

+0

私のアプリケーションでは、ボタンがUITableViewヘッダーに表示され、ボタンの下にあるコンテンツが消えるとその場所にスライドします。 –

0

ボタンの画像スナップショットを作成し、そのビューを上に回転させるアフィン変換アニメーションを実行するか、yスケールを変更します。

関連する問題