[解決済み] UIViewとCALayerの違いは何ですか?
質問
どちらもほとんど同じ属性を持っていて、異なる種類のアニメーションをサポートし、異なるデータを表します。 UIViewとCALayerの違いは何ですか?
どのように解決するのですか?
iOSでは、すべてのUIViewはCore Animation CALayerによってバックアップされているので、UIViewを使用するときは、気づいていないかもしれませんが、CALayerを扱っていることになります。 Core Animation が存在する前に進化した Mac の NSView とは異なり、UIView はこれらの CALayers の軽量ラッパーであることを意図しています。
私は同様の質問で説明するように Mac/iPhoneでCALayerを使用する場合?" のように、CALayers を直接使用しても、UIViews よりも大きなパフォーマンスの利点は得られません。 UIViewsの代わりにCALayersでユーザーインターフェイスの要素を作りたいと思う理由の一つは、Macに非常に簡単に移植できることです。 UIViewsはNSViewsと大きく異なりますが、CALayersは2つのプラットフォームでほとんど同じです。 これが、Core Plotフレームワークが他のUI要素の代わりにCALayersを使ってグラフをレイアウトしている理由です。
UIViewsがCALayersより優れている点の1つは、ユーザーインタラクションのための組み込みサポートです。 CALayers の階層を管理する場合、自分で構築する必要があるタッチおよび他の関連するアクションでのヒット テスティングを処理します。 これを自分で実装するのはそれほど難しくありませんが、CALayerだけのインターフェイスを構築するときに書かなければならない余分なコードになります。
基底のUIViewクラスが可能にするよりも複雑なアニメーションを実行するとき、しばしばUIViewのための基礎となるレイヤーにアクセスする必要があります。 UIViewのアニメーション機能はiOS SDKが成熟するにつれて成長してきましたが、基礎となるCALayerとの対話によって行うのが最善であるものがまだいくつかあります。
関連
-
[解決済み] Cocoa:フレームとバウンドはどう違うの?
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] コードサインエラーです。期限切れのプロファイルを削除した後、プロビジョニングプロファイルが見つからない
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み】Objective-C ARC: strong vs retainとweak vs assign
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] UIViewに角丸をつける
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] CocoaPodsの最新バージョンにアップデートしますか?
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] ぼかしの入ったオーバーレイビューの作成