मास्किंग शायद इसके लिए अधिक है। बस हर बार छवि को दोबारा हटा दें। जब आप करते हैं, तो आप ड्राइंग के निचले हिस्से को भरने के लिए लाल आयताकार खींचते हैं, जो भी ऊंचाई आप चाहते हैं; तो आप बूंद छवि (एक पीएनजी) खींचते हैं, जिसमें मध्य में पारदर्शिता होती है ताकि लाल आयत से पता चलता है। तो, एक पीएनजी पर्याप्त है क्योंकि प्रत्येक बार जब आप लालसा करते हैं तो लाल आयत को "लाइव" खींचा जा सकता है।
मैं अपने ड्राइंग इतना है कि मैं जीवन में लाने के लिए करना चाहता था पसंद आया, तो यहाँ मेरे कार्य कोड (मेरी पीएनजी कहा जाता है tear.png और iv
मेरी इंटरफ़ेस में एक UIImageView है; percent
0 के बीच एक CGFloat होना चाहिए और 1):
func redraw(percent:CGFloat) {
let tear : UIImage! = UIImage(named:"tear")!
if tear == nil {return}
let sz = tear.size
let top = sz.height*(1-percent)
UIGraphicsBeginImageContextWithOptions(sz, false, 0)
let con = UIGraphicsGetCurrentContext()
UIColor.redColor().setFill()
CGContextFillRect(con, CGRectMake(0,top,sz.width,sz.height))
tear.drawAtPoint(CGPointMake(0,0))
self.iv.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
मैं भी ऊपर एक UISlider जिसका कार्रवाई विधि एक CGFloat करने के लिए अपने value
धर्मान्तरित और उस प्रणाली को बुलाती है, झुका ताकि स्लाइडर आगे और पीछे चलती ले जाता है लाल को भरने और अश्रु में नीचे। मैं इसके साथ घंटों तक खेल सकता था!
बहुत अच्छी ड्राइंग। – matt