問題タブ [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.

0 投票する
1 に答える
862 参照

iphone - CALayer の visibleRect メソッドを使用すると、UIImageView を画面から半分外に出しても常に同じ幅になるのはなぜですか?

ビューを右に移動するために数回呼び出されるメソッド内の UIImageView から visibleRect を取得します。部分的に画面からはみ出すとすぐに、visibleRect が小さくなることを期待しています。しかし、そうではありません。

ビューの真の可視 Rectangle が必要なときに、考えなければならない特別なことはありますか? 実際には、スーパービューによって常にクリップされると思っていたので、そのメソッドは実際に表示されている長方形の寸法を返します。

しかし、UIImageView を少しずつ右に移動すると、幅は 300.0 のままです。その一部が窓の外に出ても。

0 投票する
1 に答える
1849 参照

objective-c - CALayer をサブクラス化して、事前にスタイル設定されたレイヤーを返すにはどうすればよいですか?

スタイリング プロパティが既に設定されているレイヤーを返すように、CALayer をどのようにサブクラス化しますか?

となることによって:

これらのプロパティを持つレイヤーを作成します。

フレームを設定してツリーに追加するだけです。

しかし、私の質問は、作成時にプロパティが既に設定されているように、オブジェクトをサブクラス化する方法です。可能?

0 投票する
2 に答える
898 参照

iphone - 複数のCALayerのスケーリングに関するパフォーマンスの問題

2つのCALayerサブクラスがあり、それぞれに独自のdrawLayer:(CALayer *)layer inContext:(CGContextRef)ctxデリゲートがあります。どちらも単純なレイヤー(CGパスで描画された単色の形状)ですが、同時に約12のインスタンスをスケーリングする必要があり、フレームレートに問題があります。いくつかのサイクルを解放するために、すべてのレイヤーを不透明としてマークし、(boundsプロパティ自体で)暗黙的および明示的な基本アニメーションを使用し、変換プロパティにCA3DTransform行列を割り当ててみました。

良いフレームレートを維持しながらオブジェクトのサイズをすばやく変更する良い方法を知っている人はいますか?

0 投票する
1 に答える
3887 参照

cocoa - CALayer座標系

Cocoaは初めてですが、CALayerの座標系を変更する方法を知りたいです。Core Animationプログラミングガイドの「レイヤージオメトリと変換」の記事を読みましたが、それでも実用的なアドバイスが必要です。

デフォルトの座標系では、左下隅に(0,0)があります。これをレイヤーの中央に変更したいと思います。それは可能ですか?

私が試したこと:レイヤーのフレームのMidXおよびMidYへのsublayerTransformとしてCATransform3DTranslateを使用すると、サブレイヤーが適切な場所に表示されます。setFrameSizeイベントで、変換を再計算して再度適用する必要があります。自動更新(「ステップ」なし)が必要です。

または、kCAConstraintMidXを使用してサブレイヤーMidXをレイヤーMidXに関連付け、オフセットを使用する必要がありますか?実際、私はサブレイヤーとしてCATextLayersを使用しており、テキストを中央に揃えたいので、テキストの中心をスーパーレイヤーの中心に対して相対的に配置します。これを試しましたが、スーパーレイヤーのサイズを変更しても自動的に更新されないようです。

0 投票する
2 に答える
1122 参照

iphone - iPhone で PDF を表示する - CALayers?

私はこれを理解しようとして大きな頭痛を抱えています。PDFファイルから単一のページを表示しようとしています(唯一のものです)。このpdfページは、ピンチなどでズームインおよびズームアウトする必要があるマップです...私はCATileLayersでこれを行っています(各タイルは256x256ですが、より大きなサイズに設定できます)。それは仕事をしますが、本当にゆっくりです。私がやりたかったのは、これらすべてのタイルを一度にロードすることでした。それは可能ですか?drawInContext: はタイルごとに呼び出されますが、動き回るとそれらが表示されるのを待たなければならず、デバイスでのスムーズなエクスペリエンスが必要でした。ズーム部分にはまだ手をつけていませんが、予想以上の作業が必要になるのではないかと心配しています。それ以外に、スーパーレイヤーの境界に達したときに停止するようにスーパーレイヤーの境界を設定する方法はありますか、または touchesMoved で手動で行う必要がありますか? この状況に対処しなければならなかった人はいますか?

ここにある Bill Dudley のコードを適応させようとしています: http://bill.dudney.net/roller/objc/entry/catiledlayer_exampleですが、あまり運がありません。

どんな助けや提案も大歓迎です。ありがとう

0 投票する
2 に答える
984 参照

objective-c - モデルとコントローラーをCALayerベースのUIから分離する方法は?

私は、もう少し洗練されたUIを使用して作成した古いレベルシボードゲームを再実装しようとしています。インスピレーションを得るためにJensAlfkeのGeekGameBoardコードを見てきましたが、CALayersはUIを実装する方法のように見えます。

ただし、GeekGameBoardコードにはモデルとビューの明確な分離はありません。モデルビューであるため、たとえば、AIプレーヤーのゲームツリー検索を実行するためにゲームの状態のコピーを作成することは困難です。ただし、2つの平行なグリッド(モデル用に1つ、ビュー用に1つ)を維持するための絶え間ない戦いを伴わない、モデルとビューの分離を可能にする構造の代替方法を思い付くことができないようです。 )同期しています。もちろん、これには独自の問題があります。

AIの検索に適したモデル構造と表示に適したビューの関係を最適に実装するにはどうすればよいですか?任意の提案/経験をいただければ幸いです。私は「良い答えはありません。できる限り対処してください」という答えを恐れていますが、驚かれる準備ができています。


ピーターの答えをありがとう。しかし、私はそれを完全に理解しているとは完全にはわかりません。最初のピースのセットを動かしたり、取り外したりした場合、これがどのように機能するかはわかりますが、人が新しいピースを置くとどうなりますか?これは次のように機能しますか?

  1. ユーザーがビューをクリックします。
  2. ビュークリックがボードの場所に変換され、コントローラーに通知されます。
  3. コントローラーは、継承国で新しいボードを作成します(適切な場合、つまり、それは合法的な動きでした)。
  4. ビューは、バインディングを介して新しいボードを取得し、既存のビュー/レイヤー階層を破棄して、現在の状態に置き換えます。

それは正しいですか?

PS:それがiPhone用かMac用かを特定できなかったことをお詫びします。私はiPhoneで動作するものに最も興味がありますが、最初にMacでうまく動作させることができれば、iPhoneで動作するようにソリューションを適応させることができると確信しています。(または新しい質問を投稿してください!)

0 投票する
2 に答える
1799 参照

iphone - CALayer から部分的な四角形のみを取得するにはどうすればよいですか?

UITextView の「スナップショット」を CGImage として取得していますが、問題は UITextView のコンテンツが非常に長く (約 110k contentSize.height )、UITextView レイヤーをコンテキストにレンダリングするとメモリ使用量が増えることです。デバイスで実行するとアプリケーションがクラッシュする原因となる最大 130 MB。

これがコードです。viewrefUITextView のインスタンスです。

では、UITextView レイヤーの一部のみを画像コンテキストにレンダリングできますか?

0 投票する
5 に答える
13523 参照

ios - UIViewアニメーションとCALayers

UIView独自のアニメーションメソッドではなく、 CALayerを使用してアニメーションを概念化するのに苦労しています。これに「CoreAnimation 」を投入すると、誰かがこれらの概念を高レベルから明確に表現できるので、何が起こっているのか、UIViewアニメーション(今はよく知っている)をCALayerに移行したい理由をよりよく視覚化できます。 iPhoneのアニメーション。Cocoa-Touchのすべてのビューは自動的にレイヤーを取得します。そして、あなたはどちらか一方をアニメートできるようです?!?それらを混ぜ合わせても?!?しかし、なぜ?線はどこですか?それぞれの長所/短所は何ですか?

Core AnimationプログラミングガイドはすぐにLayer&Timing Classesにジャンプします。一歩下がって、これらのさまざまな部分が存在する理由と、相互にどのように関連しているかを理解する必要があると思います。