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

0 投票する
3 に答える
2090 参照

iphone - CATiledLayerを使用して、レンダリング時のタイル間の細い線、ImageMagickで生成されたタイル

AppleとImageMagickによるPhotoScrollerの例を使用して、カタログアプリを作成することができました。

しかし、レンダリングのバグがあります。並べて表示された画像は、それらの間に細い線でレンダリングされます。

ImageMagickを使用した私の簡単なスクリプトは次のとおりです。

Appleのコードは同じです。奇妙なことに、彼らがすでにタイル張りした画像は、同じ実行時間で、私の画像と並んで、魅力のように機能します:(

私の最初の推測では、タイルのサイズはコードの計算と一致していませんでしたが、スクリプトでもコードでも、サイズの変更は修正されませんでした。私の画像は通常、アップルが提供する画像よりも小さく、実際には半分のサイズです。

誰かが同じ問題を抱えていますか?

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

iphone - ゼロから UIScrollView と CATiledLayer

私の状況: コンテキストで素敵なグラフを描画する Graph クラスを呼び出す UIView を内部に持つ UIScrollView を作成しました。幅が 8192 ピクセルより大きい場合、電話は UIView をレンダリングしないことがわかりました。実際、Apple のドキュメントによると、1024px より大きくしたい場合は、CATiledLayer を実装する必要があります。

しかし、たくさん読んでグーグルで調べた後でも、このタスクの CAtiledLayer の基本を理解するのはまだ難しいと思います.Quartz と Cocoa、レイヤーとサブレイヤーとビューとサブビューの間でどういうわけか迷っています。

理想的には、Graph クラスをそのままにして、コンテキストを完全に描画し、それをタイルに分割してスクロールしたいと考えています。スクロールビューは水平方向にスクロールするだけで、ズームや垂直方向のスクロールは必要ありません。それは可能ですか?もしそうなら、私はどのように続けるべきですか?おそらく、タイルを使用するためにスクロールビュー、UIView、およびグラフクラスを再構築する方法の概要、箇条書きまたは擬似コードを誰かが教えてくれるかもしれません。

返信ありがとうございます。

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

ios - MonoTouch で CATiledLayer.FadeDuration を設定できません

からフェード アニメーションを削除しようとしていCATiledLayerます。

このクローズドバグレポートによると、静的プロパティの設定CATiledLayer.FadeDurationは機能せず、機能することは想定されていません: https://bugzilla.novell.com/show_bug.cgi?id=648993

Objective-C で推奨される解決策は、サブクラス化することCATiledLayerです: How to change iphone CATiledLayer fadeDuration? . これを MonoTouch に実装しましたが、DrawInContext期待どおりに呼び出されますが、ビューには何も描画されません。

問題を再現するための完全なコードを以下に示します。すべてを削除するとすぐに機能[Export("fadeDuration")]します(ただし、アニメーションはあります)。

助けてくれてありがとう。

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

iphone - ダウンロードした画像をCATiledLayerで処理する方法

あけましておめでとう、

ユーザーがオンラインで高解像度の画像を検索し、これらの大きな画像をダウンロードするアプリを書いています。これらをUIScrollViewに表示する必要があります。

Appleの開発サイトで、UIScrollViewsでWWDC 2010セッション104を見つけました。これは、さまざまなズームレベルで手動で作成されたタイルのセットでCATiledLayerを使用する方法を説明しています。

ダウンロードした高解像度画像ファイルからプログラムでタイルを生成する方法はありますか?

何かお勧めはありますか?

ありがとう

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

iphone - CATiledLayer が正しくないフレームと contextCTM.a 値を取得する (zoomScale)

UIScrollViewWWDC2010 セッション 104 に続いて、10000 x 8078 ピクセルの画像用にCATiledLayer を作成しました。

フレームに問題があります &zoomScaleビューが最初に最上位に表示されるとき

  1. セッション104のように、私levelsOfDetailは4と定義しました
  2. 私の drawRect で私が呼び出すCGFloat lScale = CGContextGetCTM(lContext).a;

不思議なことに、実行時に lScale には 0.124907158 が割り当てられます。予想される 0.125 ではありません。

同様に、rect渡されるにdrawRectは、次のような浮動小数点値があります。

  • rect.origin.x = 4099.04443
  • rect.origin.y = 6144
  • rect.size.width = 2049.52222
  • rect.size.height = 2048

私にとって最もイライラするのは、0x0 原点を使用しCATiledLayerて tiledImageView を作成したにもかかわらず、フレームが原点 0 x 26.93 を示していることです。initWithFrame

これの原因となる計算を見つけることができるアイデアはありますか?


編集: 奇妙なフレーム位置のソースが見つかりました。これは、ScrollView の境界が 450 px に誤って設定されていることです。420 ピクセルにする必要があります。UIScrollView の layoutSubview ルーチンには、誤って y 座標を調整するセンター ビュー ルーチンがあります。

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

iphone - CATiledLayer で正しい UIScrollView zoomScale を決定する方法

10000x8078 の画像用に を作成しましたUIScrollViewCATiledLayer

この画像を に配置しますか? UIView(それぞれの画像のサイズ)zoomScaleに従って常に更新されます。contentSize

現在使用CATiledLayercontentSizeているタイルによって異なります。

zoomScaleの正しいものをどのように判断できUISrcollViewますか?

ありがとう

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

iphone - 高速に表示される大きな画像 (Photos.app など) を使用して UIScrollView を作成するにはどうすればよいですか?

ALAssetRepresentation のフル解像度の画像を表示するための単純な画像ビューアを作成しようとしています。それほど単純ではないことがわかりました。

私の最初のアプローチは、UIScrollView 内に大きな UIImageView を作成することでした。これはうまくいきましたが、非常に遅かったです。

写真アプリを使用しているときに画像をタップすると、大きなバージョンがすぐに開きます。最初は、非常に低解像度の画像が描かれています。しかしすぐに、より解像度の高い画像が表示されます。また、ズームインすると、画像の解像度が最初に低くなり、次に解像度が高くなります。

WWDC 2010 基調講演 #104 をチェックしました。そこでは、Photos.app のしくみについて説明されています。しかし、これをどのように実装すればよいのでしょうか? 基調講演では、デモは事前にタイル化された画像を使用しています。これは、ALAssetRepresentation から取得することはできません。フル解像度バージョンをロードして CATiledLayer を使用して描画しようとしましたが、ズームなどは遅くありませんが、タイルを描画するときは遅すぎます。

Photos.app はすべての画像の低解像度バージョンをどこかにキャッシュしていますか、それとも何が起こっているのでしょうか? 何をすべきかについてのいくつかの指針が役立ちます。

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

iphone - CGImage をセグメント化する

iOS 4.0 以降で、イメージ全体をメモリにロードせずに CGImage をセグメント化する方法はありますか? 私がやろうとしているのは、*プログラムで*大きな画像を使用してCATiledLayerアプリケーションで使用するために画像をセグメント化することですが、完全な画像をロードするためにメモリを消費したくありません。

また、特定の解像度でそのセグメント (または任意のセグメント) をロードする方法はありますか? そのため、画像からズームアウトすると、そのタイルを低レベルの詳細でロードできるため、メモリを節約できます。

ありがとう!-マット

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

iphone - UIScrollViewの組み合わせ-CATiledLayer-PDFとQuartzの描画

iphone / ipadプロジェクトで、完全にズーム可能なpdf(品質を損なうことなく)に線や長方形などを描画したいと思います。

最初に:私はこのサンプルに基づいています:http ://www.olivetoast.com/blog/2009/08/simple-uiscrollview-catiledlayer-pdf-example/ このサンプルは、完全な品質でPDFをズームすることを可能にします

2番目:そして私もこのサンプルに基づいています:http : //www.iphonedevbook.com/forum/viewforum.php?f = 1&sid=6d52a0d08a8c6a807cdedfde6a041088この本のQuartzFunという名前のサンプル。線、長方形、...を描くためのものです。

これらの2つのサンプルは完全に別々に機能していますが、それらを組み合わせたい場合、線を引くことはできません...シンをより単純にするために、ここでコードをすでに組み合わせています:http ://www.megafileupload.com/en/ file / 297790 / SimpleTiledScrollExample-1-zip.html

誰かがこれを機能させるために何を変更するか教えてもらえますか?

前もって感謝します

0 投票する
4 に答える
1343 参照

ios - CATiledLayer の drawLayer:inContext の使用:

CATiledLayer+を使用して独自のマップ エンジンを実装しようとしていますUIScrollView

私の実装方法ではdrawLayer:inContext:、現在のバウンディング ボックスに必要な特定のタイル イメージがある場合、コンテキスト内ですぐに描画します。

ただし、ローカル キャッシュ データ構造に使用可能なものがない場合、タイル イメージはタイル サーバーから非同期的に要求/ダウンロードされ、コンテキスト内には何も描画されません。

問題は、コンテキストで何も描画しないと、ビューのその部分が空白のタイルとして表示されることです。また、予想される動作は、前のズーム レベルから拡大縮小されたタイル ビューを表示することです。

同様の問題に直面したことがあり、これに対する解決策を見つけた場合は、お知らせください。