【发布时间】:2015-09-10 18:04:47
【问题描述】:
当我在 iOS 中使用 Quartz 合成透明线性和径向渐变时,结果看起来不像我预期的那样。屏幕截图显示了左侧的 iOS 版本和右侧的 Java 测试。有趣的是,如果我在 OS X 上使用 Core Graphics 绘制渐变,它们看起来很好(就像 Java 一样)。
我想知道我是否缺少使这项工作所需的某些渲染选项或混合模式,或者这是否是 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))
【问题讨论】:
-
您是否尝试在调用 CGContextDrawRadialGradient 时使用 kCGGradientDrawsAfterEndLocation 或 kCGGradientDrawsBeforeStartLocation 选项
标签: ios core-graphics gradient quartz-graphics