[解決済み] UIViewのアニメーションによる隠蔽・表示
2022-04-21 01:11:32
質問
私の簡単な目標は、隠したり見せたりする機能をフェードアニメーション化することです。
Button.hidden = YES;
シンプルでいいじゃないですか。しかし、ただ消えるのではなく、フェードアウトさせることはできないのでしょうか?その方がプロらしくない。
解決方法は?
iOS 4以降では、QuartzCoreをインポートしなくても、UIViewの遷移メソッドだけで行う方法があります。と言うだけで良いのです。
目的C
[UIView transitionWithView:button
duration:0.4
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
button.hidden = YES;
}
completion:NULL];
スウィフト
UIView.transition(with: button, duration: 0.4,
options: .transitionCrossDissolve,
animations: {
button.hidden = false
})
以前の解決策
Michailのソリューションは動作しますが、実はベストなアプローチではありません。
アルファフェードの問題は、時々、異なるオーバーラップするビューレイヤーがフェードアウトするときに奇妙に見えることです。Core Animationを使った他の選択肢もあります。まず、アプリにQuartzCoreフレームワークを組み込みます。
#import <QuartzCore/QuartzCore.h>
をヘッダーに追加してください。これで、以下のいずれかができるようになります。
1) 設定する
button.layer.shouldRasterize = YES;
そして、Michail が彼の回答で提供したアルファアニメーションのコードを使用してください。これはレイヤーが奇妙にブレンドされるのを防ぎますが、若干のパフォーマンス上のペナルティがあり、ボタンがピクセル境界に正確に配置されていない場合、ぼやけて見えることがあります。
または
2) 次のコードを使って、代わりにフェードをアニメーション化します。
CATransition *animation = [CATransition animation];
animation.type = kCATransitionFade;
animation.duration = 0.4;
[button.layer addAnimation:animation forKey:nil];
button.hidden = YES;
この方法の良いところは、ボタンのプロパティがアニメーション可能でなくても(例えば、ボタンのテキストや画像)、クロスフェードできることです。トランジションを設定し、その直後にプロパティを設定するだけです。
関連
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] プロジェクト内の単一ファイルのARCを無効にするにはどうしたらいいですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] UIViewに角丸をつける
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み】UITableViewControllerを使用しないUIRefreshControl
-
[解決済み] [Solved] UIViewのアニメーションをキャンセルする?
-
[解決済み】UIView 無限360度回転アニメーション?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] 16進カラーバリューの使用方法
-
[解決済み] Swift 3でディスパッチキューを作成する方法