問題タブ [calayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - CALayersで状態を保存するにはどうすればよいですか?
CALayerのサブクラスを使用してブロックをペイントする単純なiphoneアプリケーションがあり、状態を保存するか、現在作成されているレイヤーを永続化するための最良の方法を見つけようとしています。
NSUserDefaultsにカスタムオブジェクトを格納する際のこの前の質問からのBradLarsonの回答を使用してみました。これは、CALayerのサブクラスを永続化するために機能しましたが、ジオメトリや背景色などの基本的な状態ではなかったため、そこにありましたが、再起動時にレンダリングされませんでした。
宣言したインスタンス変数をNSCodingプロトコルに準拠させましたが、すべてのプロパティを再宣言せずにCALayerのプロパティを同じようにする方法がわかりません。それとも、これは完全に正しい/最良のアプローチではありませんか?
レイヤーの配列をアーカイブするために使用しているコードは次のとおりです。
そして、これが-viewDidLoadでレイヤーをリロードするために使用しているコードです:
そして-restoreStateWithDataで:
ios - UIView の clipsToBounds と CALayer の maskToBounds の関係はどうなっていますか?
AUIView
は を持っていCALayer
ます。それはかなり確かです。しかし、どちらも同じことを意味するものを提供しているようです。
をclipsToBounds=YES
設定すると、レイヤーの も設定されmasksToBounds=YES
ますか? なぜ違う名前?誰でも知っていますか?
iphone - カスタム変換を(理論的には)使用して、CALayerに水の波及効果を作成できますか?
カスタム変換行列を作成することが可能です。しかし、それらがCALAyerに水の波及効果をもたらすのに適しているのだろうか。アニメーションでそれらの20を考えてみてください。誰か教えてもらえますか?
objective-c - Core Animation/CALayer を使用した単純なレイヤード ペイント
ペイントに階層化されたアプローチを取るカスタム NSView を作成したいと思います。レイヤーの大部分は、バッキング ビューと同じ幅と高さになると思います。
アニメーションはあまり必要ないと思いますが、このタスクに CALayer などのコア アニメーション クラスを使用するのは適切ですか? より適切なアプローチはありますか?
明確にするために、ビューは Photoshop のようなアプリケーションのキャンバスのようなものではありません。これは、ユーザーの操作 (選択、移動、スクロールなど) を可能にするデータ表示のようなものです。
iphone - CALayer drawInContext と addSublayer
これらの両方を同じ UIView で正しく使用するにはどうすればよいですか?
drawInContext 内にパターンを描画するカスタム サブクラス化された CALayer が 1 つあります。
オーバーレイPNG画像をコンテンツとして設定した別のものがあります。
私はちょうど背景である 3 分の 1 を持っています。
これら 3 つのアイテムすべてをオーバーレイするにはどうすればよいですか?
他の 2 つは、この順序で実行すると、正しく描画されます。どこにbottomLayerを配置しようとしても、常にsquaresLayerの描画が妨げられます。3 つのレイヤーが必要な理由は、背景レイヤーとカスタム レイヤーの色をアニメーション化するためです。最上層は単なるグラフィック オーバーレイです。
iphone - CAGradientLayerの使用方法は?
私はOS3.0で導入された新しいAPI、特にCore Animationのクールな新しい改善(主にCALayerなど)に慣れています。今、私はCAGradientLayerの使い方を理解しようとしています。最初は単純に見えますが、colorsプロパティに必要なNSArrayにはCGColorRefが含まれている必要があります(ヘッダーファイルによる)。(id)にキャストしようとしましたが、NSArrayにNSCFTypeオブジェクトが含まれているようですが、音が良くありません。
誰かがそれを使用する方法を考え出したか、いくつかの良いコードサンプルを指摘することができますか?
ありがとう
iphone - CAtiledlayerデリゲートが呼び出されない
別のデリゲート クラスを使用して (多くの例がそうであるように)、CATiledlayer で大きな画像の描画を実行しようとしています。タイル レイヤーは、別のビューでサブ レイヤーとして追加されました。まず、View Controller から始めます。
私の見解は現時点での基本的な見解です。後でスクロール ビューに追加し、タッチ イベントに応答するため、これをビューに表示したいと考えています。
ここですべてがうまくいかない...
タイル レイヤーの setNeedsLayout を呼び出したにもかかわらず、 drawLayer メソッドが呼び出されないため、画像が描画されません。
ios - iPhoneの回転時のCALayerの自動回転
ビューのレイヤーに CALayer サブクラスを追加する UIViewController があります。
デバイスを回転すると、ビューは回転しますが、CALayer は回転しません。縦向きのビューのままで、左側に分流されます。
サブレイヤーを自動的に回転させる方法はありますか、それとも変換を適用する必要がありますか?
iphone - CAShaperLayer -renderInContextが機能しませんか?
次のコードを使用して、CoreAnimationレイヤーからUIImageを作成できます。
このコードは私のCALayer派生クラスにあります。私が遭遇している問題は、結果の画像にレンダリングされない私のレイヤーの子レイヤーである2つのCAShapeLayersがあることです。標準のCALayerを子として追加すると、正常にレンダリングされます。Appleのドキュメントによると:
レシーバーとそのサブレイヤーを指定されたコンテキストにレンダリングします。
また、iPhoneOS2.0以降で利用可能になっているとも書かれています。足りないものがあるのか、レーダーを提出する必要があるのか疑問に思います。
子CAShapeLayersが画像に引き付けられないようにするためのアイデアはありますか?
ありがとう。
uiview - UIView の ivar のキー値コーディング
フレームの変更またはアフィン変換によって UIView が変更されたときに、いくつかのメソッドを実行することに興味があります。私の最善のアイデアは、次の値の変化を観察することでこれを行うことです。
myView.frame
と myView.transform
。
ただし、UIViews のビュー部分は Key-Value 準拠ではありません。幸いなことに、ビューのモデル部分である CALayer がそうです。だから私は次のようにセットアップします:
ビューの viewDidLoad: 部分。「フレーム」キーについても同じことを行いました。ただし、スーパー ビュー内でビューを移動するか、アフィン変換によってビューが変更されると、メソッドは次のようになります。
呼び出されることはありません。何を与える?UIViews フレームと変換の変更を観察するより良い方法はありますか?