【Swift3】<Error>: CGContextClosePath: no current point.
No Current Point
SwiftでCoreGraphicsを触っている時にこのような実行時エラーに遭遇しました。
一見問題なく描写が済んでいるものの「現在のポイントではない」という誠に不親切なことが書かれており、一瞬無視しそうになりましたが怒られるので治しときましょう。
目次作るほどでもないSolution
このエラーはいくつかの問題によって発生するそうですが、私の場合はfillPath()
で塗りつぶすのをclosePath()
の前に置いたことで発生しました。つまりその順序を逆にしたところ解決しました。
円を描写する時
円を描写する時にも同様のエラーに遭遇する時があります。で、これがエラーの出ない円を描写する基本的な順番になります。
fillEllipse(in:)
だけでも円は描写できますが、contextの描写の中でaddEllipse(in:)
で塗りつぶされていない円を描写する必要があります。そして線の描写と同じようにcloseしてから塗りつぶしの作業をします。