2017-05-25 1 views
0

に描画するためのサポートを必要と描きながら私はペンを切り替えることが可能です、アップル鉛筆/フィンガー私は<a href="https://developer.apple.com/library/content/samplecode/TouchCanvas/Introduction/Intro.html" rel="nofollow noreferrer">TouchCanvas</a>とSWIFT 2.3の使用(アップル鉛筆サンプルアプリケーション)を作っていスウィフト3

れ、

/鉛筆/ブラシ/消しゴム - 厚さ&の色と同様にそれに対応して適用されます。

参考:Screen1_Swift2.3_vs_Swift3.0.png

は今、私はSWIFT 3.0にアップグレードし、

ペン/鉛筆/ブラシ/消しゴムの切り替え時に、

を描画する - 厚&色は、最後の1を選びましたALLに適用されます。

参考:Screen2_Swift2.3_vs_Swift3.0.png

とも試したリンゴ最新pencil API..Resultsが同じ

たはいずれかが私にこのための厳密解を教えてくださいすることができます。..

答えて

0

えーえ...長くしようとした後、時間は...解決策...

override func draw(_ rect: CGRect) { 
     let context = UIGraphicsGetCurrentContext()! 

     context.setLineCap(.round) 
CanvasView.swift

だけで1行を見つけました

needsFullRedraw = falseを追加しました//この行は

 if (needsFullRedraw) { 
      setFrozenImageNeedsUpdate() 
      frozenContext.clear(bounds) 
      for array in [finishedLines,lines] { 
       for line in array { 
        line.drawCommitedPointsInContext(frozenContext, isDebuggingEnabled: isDebuggingEnabled, usePreciseLocation: usePreciseLocations) 

       } 

      } 
      needsFullRedraw = false 
     } 

     frozenImage = frozenImage ?? frozenContext.makeImage() 

     if let frozenImage = frozenImage { 
      context.draw(frozenImage, in: bounds) 
     } 

    for line in lines { 
      line.drawInContext(context, isDebuggingEnabled: isDebuggingEnabled, usePreciseLocation: usePreciseLocations) 

     } 

    } 

か、単に次の行

/*if (needsFullRedraw) { 
       setFrozenImageNeedsUpdate() 
       frozenContext.clear(bounds) 
       for array in [finishedLines,lines] { 
        for line in array { 
         line.drawCommitedPointsInContext(frozenContext, isDebuggingEnabled: isDebuggingEnabled, usePreciseLocation: usePreciseLocations) 

        } 

       } 
       needsFullRedraw = false 
      }*/ 
にコメント
関連する問題