Quand je composite linéaire transparent et gradients radiaux dans iOS en utilisant Quartz le résultat ne semble pas que je pense. La capture d'écran montre la version iOS sur la gauche et un test Java sur la droite. Fait intéressant, si j'utilise Core Graphics sur OS X pour dessiner les dégradés, ils ont l'air bien (comme le Java).Pourquoi ce dégradé composite semble-t-il mauvais sur iOS?
Je me demande si je manque une option de rendu ou le mode de fusion nécessaire pour faire ce travail ou si elle est une limitation de l'iOS.
let linearPaint = CGGradientCreateWithColors(CGColorSpaceCreateDeviceRGB(),
[darkColor.CGColor, lightColor.CGColor], [0, 1])
CGContextSetAlpha(g, 0.3)
CGContextDrawLinearGradient(g, linearPaint, CGPointMake(x,y), CGPointMake(x,y+h), CGGradientDrawingOptions(rawValue: 0))
let radialPaint = CGGradientCreateWithColors(CGColorSpaceCreateDeviceRGB(),
[color.CGColor, lightColorTrans.CGColor], [0, 1])
CGContextSetAlpha(g, 0.4)
CGContextDrawRadialGradient(g, radialPaint, center, 0, center, rad, CGGradientDrawingOptions(rawValue: 0))
Avez-vous essayé d'utiliser les options kCGGradientDrawsAfterEndLocation ou kCGGradientDrawsBeforeStartLocation sur votre appel à CGContextDrawRadialGradient –