gpt4 book ai didi

swift - Swift 中的 CGGradientDrawingOptions 错误?

转载 作者:搜寻专家 更新时间:2023-11-01 07:27:29 24 4
gpt4 key购买 nike

我正在创建一个具有渐变背景色的 UILabel。唯一的问题是我收到一条错误消息,内容如下:

“无法将类型 Int 的值转换为预期的参数类型 CGGradientDrawingOptions”

我想知道这是否是因为一个简单的语法错误,或者我是否需要在我的代码中添加或删除某些内容。请告知我需要在您的答案中添加、删除或修复的内容以及错误的含义。这是所有代码:

import UIKit

@IBDesignable class PHLabel: UILabel {

@IBInspectable var startColor: UIColor = UIColor.greenColor()
@IBInspectable var endColor: UIColor = UIColor.greenColor()

override func drawRect(rect: CGRect) {

let context = UIGraphicsGetCurrentContext()
let colors = [startColor.CGColor, endColor.CGColor]

let colorSpace = CGColorSpaceCreateDeviceRGB()

let colorLocations:[CGFloat] = [0.0, 1.0]

let gradient = CGGradientCreateWithColors(colorSpace, colors, colorLocations)

var startPoint = CGPoint.zero
var endPoint = CGPoint(x:0, y:self.bounds.height)
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0)
}
}

非常感谢任何建议或意见。

提前致谢。

最佳答案

CGGradientDrawingOptions 是一个 OptionSetType,不能从 Int 隐式转换(自 Swift 2 起)。

struct CGGradientDrawingOptions : OptionSetType {
init(rawValue rawValue: UInt32)
static var DrawsBeforeStartLocation: CGGradientDrawingOptions { get }
static var DrawsAfterEndLocation: CGGradientDrawingOptions { get }
}

在您的情况下,零值为 [ ]。如果你想使用选项,你可以输入如下内容:

let opts: CGGradientDrawingOptions = [
.DrawsBeforeStartLocation,
.DrawsAfterEndLocation
]
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, opts)

作为 Martin.R.上面说你也可以使用 CGGradientDrawingOptions(rawValue: 0) 但它不适合你的情况。

关于swift - Swift 中的 CGGradientDrawingOptions 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com