我是Swift新手,我尝试使用CGGradient创建背景渐变,但出现以下错误。无法将int类型的值转换为预期的参数类型CGGradientDrawingOptions
不能转换int类型的值与预期的参数类型CGGradientDrawingOptions
我不知道为什么我不应该在这里使用一个int。任何帮助将不胜感激。
override func viewDidLoad() {
super.viewDidLoad()
var currentContext = UIGraphicsGetCurrentContext()
CGContextSaveGState(currentContext);
var colorSpace = CGColorSpaceCreateDeviceRGB()
var topColor = UIColor(red: (57/255.0), green: (150/255.0), blue: (199/255.0), alpha: 1)
var startColorComponents = CGColorGetComponents(topColor.CGColor)
var middleColor = UIColor(red: (90/255.0), green: (60/255.0), blue: (117/255.0), alpha: 0.85)
var middleColorComponents = CGColorGetComponents(middleColor.CGColor)
var bottomColor = UIColor(red: (215/255.0), green: (109/255.0), blue: (109/255.0), alpha: 1)
var endColorComponents = CGColorGetComponents(bottomColor.CGColor)
var colorComponents
= [startColorComponents[0], startColorComponents[1], startColorComponents[2], startColorComponents[3],
middleColorComponents[0], middleColorComponents[1], middleColorComponents[2], middleColorComponents[3],
endColorComponents[0], endColorComponents[1], endColorComponents[2], endColorComponents[3]
]
var locations:[CGFloat] = [0.0, 0.35, 1.0]
var gradient = CGGradientCreateWithColorComponents(colorSpace,&colorComponents,&locations,3)
var startPoint = CGPointMake(-0.3, 0.1)
var endPoint = CGPointMake(0.2, 1.3)
CGContextDrawLinearGradient(currentContext,gradient,startPoint,endPoint, 0)
CGContextRestoreGState(currentContext);
}
如果您跳转到Xcode中的'CGGradientDrawingOptions'的定义(Cmd + click),你会发现它是一个枚举值为CGGradientDrawingOptions .DrawsBeforeStartLocation和CGGradientDrawingOptions .DrawsAfterEndLocation,并带有来自Int32的初始化程序。 – Kevin