0

私は、ユーザーがロックされた領域を塗りつぶし、指の動きで単純に線を描くことができる描画アプリに取り組んでいます。

ロックされた領域は SVG (パス) として提供されるため、SVGKit ライブラリを使用して画面にレンダリングしています (ビュー内の CAShapeLayers として)。次に、基本的に適切なレイヤーでfillColorを使用して、タッチで塗りつぶします。

ただし、線の描画では Core Graphics が機能し (CGContextStrokePath)、線は常に CALayers 階層内に含まれるすべての下に描画されます。したがって、基本的には塗りつぶされた領域の下にあります。

私が到達しようとしているのは、最後に適用された描画が常に一番上にあるシステムです。そのため、塗りつぶしを適用すると領域内の線が上書きされ、次に線を描画すると、塗りつぶされたゾーンの上に表示されます。

CGLayer の z-index は CALayer の z-index よりも小さいようです。私の目標には別のアプローチが必要です...

4

1 に答える 1

0

CAShapeLayer は CGPath インスタンスを保持してレンダリングするように設計されているため、レイヤー階層内の表示したいポイントに CAShapeLayer を追加し、その CGPath プロパティを変更します。

于 2016-10-13T14:45:30.263 に答える