2017-02-07 2 views
0

塗りつぶされたパスがあり、勾配を与えるためにクリップにも使用されています。グラデーションのレンダリングは、塗りつぶしのレンダリングと比較して、少し小さいか、または異なるアンチエイリアスです。これは、アウトライン効果を作成します。UIBezierPathの不要なアウトラインが表示され、透視勾配のクリップとして塗りつぶされて使用されます

image of a leaf shape with a light yellow to gray gradient, surrounded by a darker grey jagged outline

は、このアウトラインを削除する方法はありますか? 2つの別々に描かれた同じパスを使用し

  1. 無充填を使用しない問題
  2. を解決しないが、二つの勾配が代わりに問題が解決されない:こと

    注。別のグラデーション上のグラデーションでも、アウトラインが得られます。

  3. 塗りつぶされていない単色のグラデーションを使用することで、アウトラインなしで欲しいグラデーションを取得することはできますが、グラデーションの効果を後でアニメーション化するのが難しくなります。ここで

コードは次のとおりです。

let path4Path = UIBezierPath() 
//ordinary drawing stuff here 
path4Path.close() 
fillColor.setFill() //set to black fill 
path4Path.fill() 
context.saveGState() 
context.setAlpha(0.9) 
path4Path.addClip() 
context.drawLinearGradient(allToldGradient, start: CGPoint(x: 52.72, y: 114.48), end: CGPoint(x: 30.22, y: 91.99), options: []) 
context.restoreGState() 

答えて

0

私のようなあなたがアンチエイリアスをオフにするhabe思う:

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetShouldAntialias(context, NO); 
CGContextSetAllowsAntialiasing(context, NO); 
CGContextSetInterpolationQuality(context, kCGInterpolationNone); 
+1

ありがとうござい英語 –

+0

にあなたの答えを入力してください!私はそれを試して、それがうまくいけば答えを正しく記入するように戻ってくるでしょう。 – TheCodePig

関連する問題