[解決済み] CALayer setNeedsDisplayInRect:] の暗黙のアニメーションを無効にする。
2022-05-16 09:15:42
質問
レイヤーの -drawInContext: メソッドに、複雑な描画コードが含まれています。私は、私が行う必要がある描画の量を最小限にしようとしているので、私は変更された部分のみを更新するために -setNeedsDisplayInRect: を使用しています。これは見事に動作しています。しかし、グラフィックシステムが私のレイヤーを更新するとき、クロスフェードを使って古い画像から新しい画像に移行しています。瞬時に切り替わるようにしてほしいです。
CATransaction を使用してアクションをオフにし、期間をゼロに設定しようとしましたが、どちらもうまくいきません。以下は私が使用しているコードです。
[CATransaction begin];
[CATransaction setDisableActions: YES];
[self setNeedsDisplayInRect: rect];
[CATransaction commit];
代わりに使うべきCATransactionの別のメソッドはありますか(kCATransactionDisableActionsで-setValue:forKey:も試しましたが、同じ結果でした)。
どのように解決するのですか?
レイヤーのアクション辞書で
[NSNull null]
をアニメーションとして返すように設定します。 例えば、私は
NSDictionary *newActions = @{
@"onOrderIn": [NSNull null],
@"onOrderOut": [NSNull null],
@"sublayers": [NSNull null],
@"contents": [NSNull null],
@"bounds": [NSNull null]
};
layer.actions = newActions;
レイヤーのサイズや内容の変更だけでなく、レイヤー内のサブレイヤーの挿入や変更時にフェードイン/アウトのアニメーションを無効にするためです。 私は
contents
キーは、更新された描画でのクロスフェードを防止するために探しているものだと思います。
Swiftバージョンです。
let newActions = [
"onOrderIn": NSNull(),
"onOrderOut": NSNull(),
"sublayers": NSNull(),
"contents": NSNull(),
"bounds": NSNull(),
]
関連
-
[解決済み] UILongPressGestureRecognizerが押し下げ時に2回呼び出される
-
[解決済み】iPhone/iPad/iOS用の高速で無駄のないPDFビューア - ヒントとヒント?
-
[解決済み] APNSの.pemファイルを作成する?
-
[解決済み] Objective-CでENUMを定義して使用するにはどうすればよいですか?
-
[解決済み] レビュー待ちの状態でバイナリを拒否する(バイナリ拒否ボタンが見つからない)
-
[解決済み] プロダクションコードでNSLog()を使ってはいけないというのは本当ですか?
-
[解決済み] UISearchDisplayController/UISearchBarでNSFetchedResultsController(CoreData)をフィルタリングする方法
-
[解決済み] Objective-C用JSONパーサーの比較(JSON Framework、YAJL、TouchJSON、etc.)
-
[解決済み] iPhoneのデータ使用量のトラッキング/モニタリング
-
[解決済み] ObjectiveCの変数位置の宣言・定義?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] iOSの配布証明書の正しい更新方法
-
[解決済み】「推奨アイコンファイルがありません - バンドルには、ちょうど「120x120」ピクセル、.png 形式の iPhone / iPod Touch 用のアプリアイコンが含まれていません。
-
[解決済み] Xcode 4.2 - '...' の宣言は、この関数の外では表示されません 警告
-
[解決済み] プロダクションコードでNSLog()を使ってはいけないというのは本当ですか?
-
[解決済み] UITableViewHeaderFooterView。背景色を変更できない
-
[解決済み] Push Notificationのアラートテキストは何文字まで可能ですか?
-
[解決済み] Xcodeで非推奨の警告を抑制する
-
[解決済み] Mac OS Xのスタティック・ライブラリ(.a)のターゲット・アーキテクチャはどのように決定するのですか?
-
[解決済み] オプションのメソッドを持つプロトコルを作成するには?
-
[解決済み] iOSで入力の文字色を無効にする