2013-07-16 13 views
6

İlk iki saniyede iki UIImageView var. İkinci görüntünün parçasını görünür yapmak için fırça ile ilk görüntü parçasını silmek istiyorum (fırça yumuşak kenarlı bir png resim).UIImageView parçasını png-brush ve UIBezierPath ile silme

yaptığım bu arada: ve touchesMoved

1) [kendini setNeedsDisplayInRect: [kendini brushRectForPoint: touch_location]]; (CGRect) I çağrı rect'in:

2) (void) drawRect de [_brush drawAtPoint: touch_location blendMode: kCGBlendModeDestinationOut alfa: 1];

Tamam çalışır, ancak sıklığı yerine tek bir uzun hat kullanıcısı çok hızlı parmağını hareket ederse o zaman kısa çizgilerle (hatta puan) bir sürü olsun, yeterli touchesMoved.

Ben UIBezierPath ve example bilgisini bulundu ama yazar sadece yoluna göre çizgiler çizer:

Ben UIBezierPath ile benim png fırça çizebilirsiniz nasıl
CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextAddPath(context, path); 

CGContextSetLineCap(context, kCGLineCapRound); 
CGContextSetLineWidth(context, self.lineWidth); 
CGContextSetStrokeColorWithColor(context, self.lineColor.CGColor); 

CGContextStrokePath(context); 

?

Bu

enter image description here

teşekkür gibi bir şey çok ihtiyacım var!

+0

Dokunma konumunun hareketli ortalaması nasıl? Bu biraz gecikme (arzu edilen veya olmayacak) getirecek, ancak "atlayış" düzleştirecektir. MA periyodu ne kadar uzun olursa, pürüzsüz olur, ancak daha fazla gecikme olur. – verec

+0

Tamam, anlıyorum, ama elbette gecikme iyi değil. Her neyse, fikrin için teşekkürler. Bu konuda bir şeyler yapmaya çalışacağım. –

cevap

1

Sizin için yararlı olacak bir açık kaynak projesi var .. iOS-Scratch-n-See. ImageMaskView sınıfı ders çalışmak ilginç olacaktır.

Bu yardımcı olur umarım!

+0

Evet! Amar, tam da istediğim bu. Çok teşekkürler! –