CAShapeLayerとのdrawRectを比較します

:より転載iOSの学習:CAShapeLayerとのdrawRectコントラスト、絵画やグラフィックUIBezierPath

使用しCAShapeLayer、以下の利点のいくつかを

  • 速いレンダリング。CAShapeLayer比べて、同じグラフィックを描画し、ハードウェアアクセラレーションを使用してCore Graphicsはるかに高速。

  • メモリの効率的な使用。CAShapeLayer普通のが好きませんCALayerグラフィック搭乗同じを作成するには、そうどんなに大きな、あまりにも多くのメモリを占有されることはありません。

  • これは、境界層をクリッピングされることはありません。一つは、CAShapeLayer境界の外に描くことができます。あなたのパスは、使用してレイヤーのようではありませんCore Graphics通常のCALayerカットオフされるよう。

  • ピクセレーションは発生しません。あなたが与えるときにCAShapeLayer3D変換を行い、同じピクセル化となり、通常の層の搭乗図ではありません。

CAShapeLayerとのdrawRectを比較します

  • CAShapeLayer継承されCALayer、そのために使用することができるCALayerすべてのプロパティのために。しかし、CAShapeLayer作るセンスを使用したニーズやベジェ曲線。

  • -(void)drawRect:(CGRect)rect{}それがあるだけの方法UIView私たちのドローグラフィックス機能を完了するには、このメソッドをオーバーライドする方法。

  • drawRect:のdrawRectはCPU、消費性能を取り上げ、CoreGraphic枠組みを属します。

  • CAShapeLayer:CAShapeLayerは、パフォーマンスを保存、グラフィックスをレンダリングするGPUによってCoreAnimationフレームを属します。携帯電話のGPUに直接提出されたアニメーションのレンダリングは、内に消費しません。

UIBezierPathとCAShapeLayer関係

  • 形状はCAShapeLayerは意味の形状を表し、それを有効にする必要が形状です。

  • ベジェ曲線は、パスベクトルに基づいて作成することができ、そしてUIBezierPathクラスがされているCGPathRefカプセル化されました。

  • するベジェ曲線CAShapeLayer経路提供CAShapeLayer設けパスでレンダリングします。パスは閉じられ、そのうちにマッピングされますShape。

  • ベジェ曲線は、ベジェ曲線は閉ループではない場合であっても、最後まで閉曲線接続端部であるパスCAShapeLayer経路として使用されます。

CAShapeLayer与のCALayer

  • それはフレームの値の必要がCALayerのが一般的であり、初期化されると、フレームは、割り当てられた値の境界自体が成形されている特定のビューに対する値、および矩形とほぼ一致しています。

  • CAShapeLayerフレームは、初期値を指定する必要がありますが、それはそのプロパティパスから、その形状を形状を持っていません。

  • CALayerのCAShapeLayerとは異なり描かれたときにそのCALayerのから継承された属性が動作しない、属性を持っています。

CAShapeLayerは非常に重要ないくつかを持っています

  • 指定されたパスに添付CAShapeLayerは、完了していないパスが自動的にエンドツーエンドを接続した場合でも、パスが与えられ、しなければなりません。

  • CAShapeLayerプロパティ:strokeStartとstrokeEndが占有で、このパスに割合を表します。

  • 唯一のアニメーション効果の縁に沿って限定CAShapeLayerアニメーションが、それは充填の効果を達成することができません。

CAShapeLayerオブジェクトのプロパティ一覧

プロパティ名 説明
パス CGPathRefオブジェクト、グラフィック副業パス
線幅 副業の幅
strokeColor サイドラインの色
lineDashPattern デフォルトは実線で、アレイは、アレイのNSNumberであり、破線が順次に配列値が単一のラインの長さを表しており、ブランクの長辺のスタイルを設定し、例えば:配列@ [2,2,3,4]を示し図2は、長さを有するライン、ブランク2の長さは、3行の長さであり、ブランク4の点線の長さは、循環続けます。
lineDashPhase セットは、@ lineDashPattern場合、すなわち、パターンエッジの開始位置[2,2,3,4]、lineDashPhase 2の開始位置の最初の行の長さであります
このlinecap 行末スタイル、デフォルトkCALineCapButt
たlineJoin 変曲点でのスタイルライン、デフォルトkCALineJoinMiter
strokeStart strokeEnd CGFloatタイプ、開始と終了端を示す[0,1]ビデオ(すなわち、ルート上のパーセンテージ)
塗りつぶしの色 CGColorRefオブジェクト、グラフィックスが色を塗りつぶし、デフォルトは黒です

ます。https://www.jianshu.com/p/55864e5f8a04で再現

おすすめ

転載: blog.csdn.net/weixin_34351321/article/details/91227919