जब आपके पास कोई CGBlendMode का उपयोग मुखौटा ढाल बचा सकता है। सटीक रंगों को नियंत्रित करना मुश्किल है। लेकिन यदि यह आपके लिए महत्वपूर्ण नहीं है, तो यह कोड की रेखाओं और शायद प्रदर्शन के संदर्भ में थोड़ा अधिक कुशल हो सकता है।

पारदर्शी ढाल लागू रेडियल:
यहाँ कुछ यादृच्छिक रंग और CGBlendModeExclusion (CGBlendModeDifference आप एक समान प्रभाव देता)
- (void) drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(ctx, kCGBlendModeExclusion);
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGFloat col1[8] = {
1.0, 0.0, 0.0, 1.0,
0.0, 0.0, 1.0, 1.0
};
CGGradientRef grad1 = CGGradientCreateWithColorComponents (space, col1, NULL, 2);
CGContextDrawLinearGradient(ctx, grad1, CGPointMake(0, 0), CGPointMake(0, 320), 0);
CGFloat col2[8] = {
1.0, 0.5, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0
};
CGGradientRef grad2 = CGGradientCreateWithColorComponents (space, col2, NULL, 2);
CGContextDrawLinearGradient(ctx, grad2, CGPointMake(0, 0), CGPointMake(320, 0), 0);
CGGradientRelease(grad1);
CGGradientRelease(grad2);
CGColorSpaceRelease(space);
}
स्रोत
2012-07-14 15:09:41
यह एक अच्छा समाधान प्रतीत होता है! – Mrwolfy
बहुत बढ़िया यह वही है जो मुझे चाहिए, अच्छी नौकरी! –