2009-09-03 11 views
9

के बीच मिश्रण मोड को लागू करने का सबसे आसान/तेज़ तरीका मैं मौजूदा UIView के रंगों को तेज़ी से बदलने की कोशिश कर रहा हूं (एक नकारात्मक रूप में, एक नकारात्मक नकारात्मक में बदलना)। या रंग लेने और संतृप्ति को चालू करने के लिए। मुझे लगता है कि बिटमैप में हेरफेर करने से आसान एक और UIView लेना है जो सभी सफेद (या रंग) है, और मेरे लक्ष्यों को प्राप्त करने के लिए मिश्रण मोड का उपयोग करना है।दो UIViews

मुझे यह देखने का कोई तरीका नहीं दिख रहा है कि किसी अन्य के ऊपर UIView कैसे खींचा जाता है। यहां तक ​​कि अगर मैं UIView को उपclass करता हूं, तो मुझे मिश्रण का उपयोग करके आकर्षित करने का एक आसान तरीका नहीं दिखता है। ऐसा लगता है कि मुझे UIImageView को उपclass करना होगा जिसमें एक सही है: ब्लेंडमोड के साथ।

क्या किसी ने इसे आसान तरीके से किया है? मैं उम्मीद कर रहा था कि मैं सिर्फ UIView या UIImageView पर एक ब्लेंडमोड प्रॉपर्टी सेट कर सकता हूं और उसे उपclass नहीं करना चाहिए ...

असल में, आप एक दृश्य को जल्दी कैसे बदल देंगे ताकि काला सफेद हो और सफेद काला हो?

क्रेट UIView का एक उपवर्ग:

+0

हाय @ महबौडज़, क्या आपको ऐसा करने का बेहतर तरीका मिला? या आप अभी भी इस तरह से उपयोग कर रहे हैं? धन्यवाद! –

उत्तर

7

यह समाधान हो रहा है। फिर drawRect में:

    [self.image drawInRect:rect]; 

    // prepare the context to draw into 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    // set the blend mode 
    CGContextSetBlendMode(context, kCGBlendModeDifference); 

    // now draw the appropriate color over the whole thing 
    CGContextFillRect(....); 

मैं इसे अभी आज़माने के लिए बंद हूं।

+5

और क्या यह वास्तव में काम करता है? मुझे पता है कि यह हर जगह पोस्ट किया गया है, लेकिन यह काम करता है? –

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