私はこれを構築しようとしています:
白い背景が実際に透明な場所。CGPath を設定された領域にクリップする方法は知っていますが、塗りつぶされた CGPath から領域を差し引く必要があるため、これは逆のようです。
正しい方法は、CGPath から外側の円全体を差し引いてから、CGPoints に小さな円を描くことだと思いますが、前者を実行する方法がわかりません。誰かが私を正しい方向に向けることができますか?
私はこれを構築しようとしています:
白い背景が実際に透明な場所。CGPath を設定された領域にクリップする方法は知っていますが、塗りつぶされた CGPath から領域を差し引く必要があるため、これは逆のようです。
正しい方法は、CGPath から外側の円全体を差し引いてから、CGPoints に小さな円を描くことだと思いますが、前者を実行する方法がわかりません。誰かが私を正しい方向に向けることができますか?
それが私がすることです:
1) 一般的な線を引きます
2)CGContextSetBlendMode(context, kCGBlendModeClear)
描画時に「コンテキストをクリア」する。
3) より大きな円を描く
4)CGContextSetBlendMode(context, kCGBlendModeNormal)
通常の描画に戻る
5) 小さな円を描きます。
代わりに、透明レイヤーを開始して線を描き、次にクリアカラーを使用して大きな透明な円を描き、次に小さな黒い円を描くことができます. 次に、透明レイヤーを終了すると、コンテキストに必要なものが正確に合成されます。