2016-09-05 31 views
19

Tôi có một lớp Gradient mà tôi đang cố gắng để chuyển đổi sang Swift 3 nhưng tôi nhận được lỗi sau'CGPointMake' không có sẵn trong nhanh chóng

'CGPointMake' không có sẵn trong nhanh chóng

cho

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) 
} 

bất cứ ai có thể giúp tôi ra với những gì tôi có thể sử dụng thay vì CGPointMake

Đây là lớp học đầy đủ;

@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) 
} 
} 
+2

Đầu tiên Google nhấn cho ' 'CGPointMake' không có sẵn trong nhanh chóng 3' ... –

+1

@MartinR bạn có thể sử dụng' CGPoint (x: view.bounds.midX, y: view.bounds.midY) 'thay vì . – Linus

Trả lời

45

Nhanh chóng bạn có thể tạo CGPoint theo cách swifty CGPoint(x: xPos, y:yPos). Vì vậy, hãy thay đổi CGPointMake(startX, startY) của bạn thành CGPoint(x: startX, y: startY)

11

swift 3 nhấn mạnh việc sử dụng các tham số được đặt tên.

CGPoint Có thể tạo như thế này.

let point = CGPoint(x: 0,y :0) // CGFloat, Double, Int 
Các vấn đề liên quan