私は2つ目のUIImageViewを持っています。私は、ブラシで最初の画像の部分を消去したい(ブラシは柔らかいエッジのあるPNG画像です)、2番目の画像を見えるようにします。png-brushとUIBezierPathを使ってUIImageViewを消去する方法
私は、この方法によって:をとtouchesMoved
1)自己setNeedsDisplayInRectを:[自己brushRectForPoint:touch_location]。 (CGRect)Iは呼び出し RECT:
2)(ボイド)のdrawRectで[_brush drawAtPoint:touch_locationにするBlendMode:kCGBlendModeDestinationOutアルファ:1]。
それは大丈夫動作しますが、の周波数が足りないをtouchesMovedユーザーが速すぎて指を動かす場合は、私が代わりに一つの長い行の短い線(あるいは点)の多くを得ます。
私はUIBezierPathの情報を発見し、exampleしかし著者はちょうどパスで線を描画:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddPath(context, path);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, self.lineWidth);
CGContextSetStrokeColorWithColor(context, self.lineColor.CGColor);
CGContextStrokePath(context);
私はUIBezierPathと私のPNGブラシを描くことができますどのように?
私はこの
おかげでたくさんのようなものが必要!
タッチ位置の移動平均はどうですか?これはいくつかの遅れ(望ましくないかもしれない)を導入するが、滑らかな "飛び降り"をもたらすだろう。 MA期間が長いほど、よりスムーズですが、遅れも長くなります。 – verec
私は理解しますが、遅れは良くありません。とにかくあなたの考えに感謝します。私はこれで何かをしようとするかもしれないかもしれません。 –