2015-01-11 8 views
5

प्रारंभ करने के लिए, यह प्रोजेक्ट स्विफ्ट का उपयोग करके बनाया गया है।स्विफ्ट प्रगति संकेतक छवि मास्क

मैं एक कस्टम प्रगति संकेतक बनाना चाहता हूं जो स्क्रिप्ट चलाता है "भर जाता है"। स्क्रिप्ट दूरस्थ सर्वर से खींची गई JSON फ़ीड को कॉल करेगी।

बेहतर कल्पना करने के लिए कि मैं क्या कर रहा हूँ के बाद, मैंने बनाया इस:

enter image description here

मेरा अनुमान दो PNG छवियाँ के लिए हो सकता है; एक सफेद और एक लाल, और फिर बस प्रगति राशि के आधार पर कुछ मास्किंग करें।

इस पर कोई विचार?

+0

बहुत अच्छी ड्राइंग। – matt

उत्तर

5

मास्किंग शायद इसके लिए अधिक है। बस हर बार छवि को दोबारा हटा दें। जब आप करते हैं, तो आप ड्राइंग के निचले हिस्से को भरने के लिए लाल आयताकार खींचते हैं, जो भी ऊंचाई आप चाहते हैं; तो आप बूंद छवि (एक पीएनजी) खींचते हैं, जिसमें मध्य में पारदर्शिता होती है ताकि लाल आयत से पता चलता है। तो, एक पीएनजी पर्याप्त है क्योंकि प्रत्येक बार जब आप लालसा करते हैं तो लाल आयत को "लाइव" खींचा जा सकता है।

मैं अपने ड्राइंग इतना है कि मैं जीवन में लाने के लिए करना चाहता था पसंद आया, तो यहाँ मेरे कार्य कोड (मेरी पीएनजी कहा जाता है 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 धर्मान्तरित और उस प्रणाली को बुलाती है, झुका ताकि स्लाइडर आगे और पीछे चलती ले जाता है लाल को भरने और अश्रु में नीचे। मैं इसके साथ घंटों तक खेल सकता था!

enter image description here

+0

और यहां ड्राइंग पर मेरी पुस्तक का अध्याय है, जिसने मुझे बताया कि कोड कैसे लिखना है: http://www.apeth.com/iOSBook/ch15.html – matt

+0

यह कमाल है! क्या एक अच्छा जवाब है। मदद के लिए बहुत बहुत धन्यवाद। मैं वास्तव में उसकी सराहना करता हूँ। दृष्टिकोण इतना तार्किक है! – matcartmill

संबंधित मुद्दे