自分のドキュメントビューアにネストされたコメント(ステッカーなど)を実装したいと思います。最初はそうあるべきですUITextView
が、resignFirstResponder
実行すると小さなボタンになります。主な質問は、これをどのようにアニメーション化するかです。AppleのQuartz2dプログラミングガイドを読みましたが、何もわかりませんでした。私は正確な解決策やすぐに使える解決策を求めていません。キーワード、記事へのリンク、またはドキュメントで十分です。今後の対応ありがとうございます。
2 に答える
この方法を使用できます
[UIView animateWithDuration: delay: options: animations: completion:];
したがって、ボタンをフェードインしてテキストフィールドをフェードアウトしたい場合は、
//Starting properties
myButton.alpha = 0;
myTextField.alpha = 1;
//Do the animation
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationCurveEaseInOut animations:^{
myButton.alpha = 1;
myTextField.alpha = 0;
} completion:^(BOOL finished) {
if (finished) {
NSLog(@"finished animating");
}
}];
これにより、2つのオブジェクトの不透明度が300ミリ秒で0〜1 /1〜0に変更されます。
サイズ、位置、不透明度など、この方法で多くのプロパティをアニメーション化できます。
AppleがQuickLookの2つの異なる要素間でフェードするのと同じ方法でそれを行うことができます。Finderで選択した項目でshift+を押すと、スローモーションで効果を確認できます 。space
アニメーションは基本的に、フレームが変更されると同時にクロスフェードになります。おそらく、ボタンとテキストビューの両方を画像にレンダリングし、2つの画像ビュー(アニメーション中にのみ存在する)でアニメーションを実行して、フレームの変更時にアスペクト比が変化するときに画像を引き伸ばすことができるようにする必要があります。
ビューを画像にレンダリングするにはCoreAnimationが必要ですが、残りの画像はフレームとアルファ/不透明度のアニメーションのみであるため、UIViewアニメーションで実行できるはずです(Core Animationが複雑に見える場合)。ただし、Core Animationを使用すると、アニメーションを微調整する際に、よりきめ細かい制御が可能になります。