CALayerでクリッピングを無効にするにはどうすればよいですか?私はdrawInContextをオーバーライドしていますが、CALayerの範囲外に延びる線を描きたいので、これを実現するために親レイヤーで別の描画パスを実行したくありません。CALayerでクリッピングを無効にする
3
A
答えて
5
CALayerまたはUIViewの範囲外でQuartzを使用して描画することはできません。ノアが示唆するように、これを描くためには、レイヤーの境界を一定量だけ拡張する必要があります。
親レイヤのmasksToBounds
プロパティがNOに設定されている限り、親レイヤでいくつかの描画を行うことなく、これを行うことができます。そうすれば、たとえあなたのサブレイヤが親の端を越えて伸びていても、それは適切に描画されます。
3
まあ、CALayer
は(、NO
に設定し、層の境界にデフォルトのクリッピングを無効にします)masksToBounds
性質を持っていますが、私はそれが層自体、ちょうどそのサブレイヤのクリッピングの描画に影響を与えないと思います。何らかの理由でレイヤー自体のフレームを展開できない場合は、レイヤーにそのプロパティを設定し、描画する寸法の大きなサブレイヤーを追加し、描画コードをそのサブレイヤーに移動する必要があります。
関連する問題
- 1. 無効なコンテキストのCALayer
- 2. 1つのアクションですべてのCALayerデフォルトアクションを無効にする
- 3. 移動したときのCALayerのコンテンツの再描画を無効にする
- 4. サイズ変更時にサブcalayerのスケーリングを無効にするにはどうすればよいですか?
- 5. 別のCALayerでCALayerをマスキング
- 6. CGPathにCGPathをクリッピングする
- 7. Ehcache3を無効/無効にする
- 8. CSSでPNGでクリッピングする
- 9. ポインタを無効にするポインタの配列が無効です
- 10. LinuxでGUIを無効にするQt LinuxでGUIを無効にする
- 11. Windowsキーを無効にするWindowsキーを無効にする
- 12. ToolStripMenuItemを無効にするかMenuStrip.Itemを無効にする
- 13. リフトを無効にするリフトを無効にする
- 14. ズームコントロールを無効にするピンチズームを無効にする
- 15. JavaFXのクリッピングで「宝くじスクラッチチケット」が生成される - 効果
- 16. Revolution Sliderの3D効果による奇妙なクリッピング
- 17. C#でWindows 10のホットキーを無効/無効にする方法
- 18. WebbrowserコントロールのJavascriptをInjectで無効/無効にする?
- 19. ビジュアルスタイル/テーマを単一のフォームで無効/無効にする
- 20. Unixソケットプログラミング、無効なホスト名でhang()を無効にする
- 21. CALayerマスクを逆にする
- 22. hrefを無効にする方法と無効にする
- 23. CALayerでタッチイベントを取得するには?
- 24. 子供をクリッピングするQGraphicsItems
- 25. OS XでCALayerのmagnificationFilterが無視されている
- 26. 無線選択で無効にする選択/ドロップダウンを有効にする
- 27. IIS web.configを無効にしてリクエストフィルタリングを無効にする
- 28. ネイティブスクロールビューを無効にしてリフレッシュを無効にする
- 29. craftyJSでオブジェクトのクリッピングを防止する
- 30. CSSのグラディエントマップでマスクをクリッピングする
これはどのようなパフォーマンスが得られるか知っていますか? (もしあれば)。私は100と200のレイヤーを持っています、そしてこれは別の100から200レイヤーを追加します... – jjxtra
@JJC - このアプローチはレイヤーを追加しません。既存のレイヤーの境界を拡張するだけです。より大きな領域を描画するのは時間がかかりますが、これは1回限りの操作である可能性があります。大きなレイヤーではより多くのメモリを使用しますが、ちょっとしたことを拡張したいように思えます。 –
私は、レイヤーの中央に描画するように描画コードを変更してから、適切に描画する必要があります。私はこれがおそらく最高のソリューションだと思う、ありがとう! – jjxtra