問題タブ [catiledlayer]
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.
iphone - CATiledLayerにタイルをプリロード/プリディスプレイしますか?
iPhoneでは(Cocoaでも同様に有効な質問だと思いますが)、CATiledLayerに裏打ちされたUIViewの周りにUIScrollViewがあります。デフォルトで機能する方法は、ビューポートがCATiledLayerの空白のセクションをスクロールしたときに、キャッシュされていない/フェッチされていないタイルをロードすることです。
私が知りたいのは、CATiledLayerをトリガーして、アクティブに表示されていないタイルをロードする方法があるかどうかです。たとえば、現在表示されているタイルに隣接するすべてのタイルを画面外にプリロードして、非同期で読み込まれると画像にフェードインする空白の画面が点滅しないようにします。
何か案は?
iphone - コンテンツを描画する前に CATiledLayer がタイルを消去する
全て、
CATiledLayer から必要な動作を取得できません。最初にタイルの領域が白くクリアされるという副作用なしに、タイルを再描画するようにトリガーできる方法はありますか? すでに CATiledLayer をサブクラス化して、fadeDuration が 0 を返すように設定しました。
具体的には、私が見ていることと達成しようとしていることの詳細を以下に示します。
- 大きなコンテンツサイズの UIScrollView があります...〜12000x800。そのコンテンツ ビューは、CATiledLayer に基づく UIView です。
- UIView は、多くのカスタム描画された線でレンダリングされます
- すべて正常に動作しますが、UIView の内容が変わることがあります。そんな時はなるべくシームレスにタイルを描き直したい。ビューで setNeedsDisplay を使用すると、タイルが再描画されますが、最初に白にクリアされ、新しいコンテンツが描画されるまでに数分の一の遅延があります。すでに CATiledLayer をサブクラス化して、fadeDuration が 0 に設定されるようにしました。
- 私が望む動作は可能であるように思われます...スクロールビューを拡大し、コンテンツがより高い解像度で再描画されると、再描画の前に空白はありません。新しいコンテンツは古いコンテンツの上に描画されます。それが私が探しているものです。
ありがとう; あなたのアイデアに感謝します。
更新:
フォローアップするために-再描画の前にタイルが白くクリアされていないことに気付きました.タイルは完全に取り除かれています。私が見ていた白は、CATiledLayer に裏打ちされたビューの下にあるビューの色です。
簡単なハック/修正として、UIScrollView の下に UIImageView を配置し、CATiledLayer に基づくビューの再描画をトリガーする前に、その可視セクションを UIImageView にレンダリングして表示させます。これにより、再描画が大幅にスムーズになります。
そもそも再描画される前に再描画対象のタイルが消えないようにするなど、誰かがより良い解決策を持っている場合は、それを聞いてみたい.
iphone - CATiledLayer描画のクラッシュ
私のアプリケーションでは、次のビュー階層を使用しています。
つまりTiledView
、大きなタイル画像を表示します。そのビューにもカスタム回転を適用します。
TiledViewの描画方法:
UIScrollViewを使用すると、コンテンツのスクロールとズームの両方が可能です。
オーバーレイビューはUIScrollViewの上にあり、背景が透明で、カスタム描画を実行します。別のビューを使用して、行幅とフォントサイズがスクロールビューのズームスケールの影響を受けないようにします。
OverlayViewの描画メソッド:
最初はすべて問題なく動作しますが、ビューを操作した後(たとえば、前後にスクロールするなど)、描画関数の1つでランダムな線でクラッシュします。例として、アプリがオンラインでクラッシュします。
スタック付き:
複数のグラフィックスコンテキスト間で必要な同期が欠落していますか?または、私が試していることを行うためのより良い方法があるかもしれませんか?
iphone - CGContextShowGlyphsAtPointの問題の代わりにNSStringのdrawAtPointメソッドを使用する
私のアプリでは、パスに沿ってテキストをレンダリングしようとしています。これはほとんどのキャラクターには問題ありませんが、日本語(またはmac-Roman以外のもの)には問題ありません。CATiledLayerに正しい文字を表示する[NSStringdrawAtPoint]を使用することをお勧めします。ただし、約5秒後に消えます。今回はレイヤーをズームでき、適切に拡大縮小されますが、他のテキストのようにCATiledLayerにコミットされていないようです。
レンダリングする前に、文字列をチェックして、レンダリングできないものがあるかどうかを判断します。問題が発生する場合は、代わりにdrawAtpointを使用します。
テキストが消える理由について誰かが何か指針を持っていますか?
drawAtPointが使用されるとすぐに、デバッグ出力が次のように溢れます。
だから、それは私のコンテキスト管理と関係があると思いますが、これがCGContextShowGlyphsAtPointを使用するのと同じ場所にある場合、それはすでに正しいコンテキストを持っているはずだと思いましたか?
iphone - iPhone の MapKit でタイル オーバーレイは可能ですか
Google Maps JavaScript API で使用するタイル ソースを既にセットアップしています。これを iPhone MapKit で使用できるように翻訳しようとしています。JavaScript ズーム レベルを mapkit に正しく実装しました。が呼び出されるたび- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
に、同じ中心点に基づいて領域を最も近いズーム レベルにスナップします。
タイリング ソリューションを実装するために、CATiledLayer を使用してソリューションを実装することは可能ですか。iPhone は、Google マップがネイティブに使用する標準の 256x256 タイルを使用しますか? これに関する指示や助けをいただければ幸いです。それが不可能な場合、これを実装しようとして数週間を無駄にしたくありません。
iphone-sdk-3.0 - CATiledLayer を検出する方法は?
PDFページを表示するためにCATiledLayerを使用しています..しかし、レイヤーにはコンテキストを描画する時間がありません。
そのため、このレイヤーの横に背景を追加し、CATiledLayer が正常に表示されたら背景を削除するようにしています。
私の質問は、CATiledLayer の描画ステータスを検出する方法はありますか?
ご協力いただきありがとうございます。
iphone - CATiledLayerからこれらの回転アーティファクトを削除するにはどうすればよいですか?
次のメソッドでコンテンツをレンダリングするCATiledLayerがあります
QuartzDemoコードを使用してパターンを描画しました。これは、レイヤーのparentLayer(UIView)に回転変換を適用するまでは非常にうまく機能します。
回転:
これらのジグザグアーティファクトは、CATiledLayerに線やテキストを描き始めると悪化します。
次のように変換を適用しました(ビュー自体にアフィン変換を使用してみました)。
相対位置を変更せずに同時に回転させたいビューに複数のレイヤーがあるため、レイヤー自体ではなく、containerViewを変換します。
過去にUIImageViewsを回転させても問題はありませんでした。
これらの問題なしにCATiledLayerを回転させる方法はありますか?
どんな助けでも大歓迎です。
あなたの、
フェリックス
iphone - ズームした後、CATiledLayerがUIScrollViewでスクロールしないのはなぜですか?
現在、CATiledLayerで次の問題が発生しています。ビューが最初に読み込まれるとスクロールは完全に機能しますが、一度ズームすると、ビューがアンカーポイント(左上隅)にスナップし、まったくスクロールできなくなります。ズームはズームインおよびズームアウトするという点で機能しますが、左上隅にのみズームします。
私のコードは次のとおりです。
iphone - iPhone: CATiledLayer/UIScrollView はズーム後にスクロールせず、アンカー ポイントにのみズームします
ここに問題があります... CA Tiled Layer を使用して大きな jpg を表示しています。ビューは正常にロードされ、スクロールすると正常に動作します。ただし、ズームインまたはズームアウトするとすぐに、左上(アンカーポイントまで)にスクロールし、まったくスクロールしません。ズームは正常に機能しますが、スクロールできません。
これが私のコードです:
iphone - CATiledLayer がメイン スレッドをブロックしないようにする方法
を に実装しCATiledLayer
ていUIScrollView
ます。にはCATiledLayer
、次のようにレイヤーを描画する関数があります。
問題は、各タイルがダウンロードされているときに、他のタイルのダウンロードがブロックされることです。これらのタイルが並行してダウンロードされることを強く望みます。特に、私が制御できない別の UI 要素のダウンロードをブロックします。
CATiledLayer
基本的に、描画メッセージでデータを非同期にダウンロードする方法を知る必要があるだけです。