CGpoint与CGPointMake

use*_*255 12 cgpoint swift

我最近被介绍给swift.

一个问题,何时使用CGPoint以及何时使用CGPointMake?

我已经互换了这两个语句,它们都返回了相同的结果

 self.anchorPoint  = CGPointMake(0.5, 0.5)

 self.anchorPoint  = CGPoint(0.5, 0.5)
Run Code Online (Sandbox Code Playgroud)

谢谢

ric*_*ter 18

Swift中的每个结构都会获得一个自动创建的成员初始化程序.所以,因为struct CGPoint存在与成员xy,你可以这样做:

 self.anchorPoint  = CGPoint(x: 0.5, y: 0.5)
Run Code Online (Sandbox Code Playgroud)

(请注意,您实际上无法做到CGPoint(0.5, 0.5)- 这会导致编译错误,因为初始化程序需要所有参数的标签,除非另有声明.)

在Swift 1.x-2.x中,CGPointMake是从此API的C版本导入的函数.在Swift 3中,初始化形式是创建CGPoint它的唯一方法- 它是使CoreGraphics更加Swifty 的变化之一.


zis*_*oft 3

当您按住 cmd 键单击该类型时,Xcode 将打开包含定义的文件。

CGPoint是一个结构体:

struct CGPoint {
    var x: CGFloat
    var y: CGFloat
}
Run Code Online (Sandbox Code Playgroud)

andCGPointMake只是一个创建 aCGPoint并返回它的函数:

func CGPointMake(x: CGFloat, y: CGFloat) -> CGPoint
Run Code Online (Sandbox Code Playgroud)