“CGPointMake”在swift中不可用

我有一个渐变类,我试图转换为Swift 3,但我得到以下错误

“CGPointMake”在swift中不可用

对于

func configureGradientView() { let color1 = topColor ?? self.tintColor as UIColor let color2 = bottomColor ?? UIColor.black as UIColor let colors: Array <AnyObject> = [ color1.cgColor, color2.cgColor ] let layer = self.layer as! CAGradientLayer layer.colors = colors layer.startPoint = CGPointMake(startX, startY) layer.endPoint = CGPointMake(endX, endY) } 

任何人都可以帮助我,而不是使用CGPointMake

这是完整的课程。

 @IBDesignable public class XGradientView: UIView { @IBInspectable public var topColor: UIColor? { didSet { configureGradientView() } } @IBInspectable public var bottomColor: UIColor? { didSet { configureGradientView() } } @IBInspectable var startX: CGFloat = 0.0 { didSet{ configureGradientView() } } @IBInspectable var startY: CGFloat = 1.0 { didSet{ configureGradientView() } } @IBInspectable var endX: CGFloat = 0.0 { didSet{ configureGradientView() } } @IBInspectable var endY: CGFloat = 0.0 { didSet{ configureGradientView() } } public class func layeredClass() -> AnyClass { return CAGradientLayer.self } public required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! configureGradientView() } override init(frame: CGRect) { super.init(frame: frame) configureGradientView() } public override func tintColorDidChange() { super.tintColorDidChange() configureGradientView() } func configureGradientView() { let color1 = topColor ?? self.tintColor as UIColor let color2 = bottomColor ?? UIColor.black as UIColor let colors: Array <AnyObject> = [ color1.cgColor, color2.cgColor ] let layer = self.layer as! CAGradientLayer layer.colors = colors layer.startPoint = CGPointMake(startX, startY) layer.endPoint = CGPointMake(endX, endY) } } 

在swift中,你可以用swifty的方式创build一个CGPoint CGPoint(x: xPos, y:yPos) 。 所以把CGPointMake(startX, startY) CGPoint(x: startX, y: startY)

swift 3强调使用命名参数。

CGPoint可以像这样创build。

 let point = CGPoint(x: 0,y :0) // CGFloat, Double, Int