转换代码到最新的swift 3.0后,我显示这个错误。
也告诉我解决方案CGSize = CGSizeMake(0,0)
static var frameAtStartOfPan: CGRect = CGRectZero
static var startPointOfPan: CGPoint = CGPointZero
这也是不可用的。
转换代码到最新的swift 3.0后,我显示这个错误。
也告诉我解决方案CGSize = CGSizeMake(0,0)
static var frameAtStartOfPan: CGRect = CGRectZero
static var startPointOfPan: CGPoint = CGPointZero
这也是不可用的。
当前回答
你可以用CGRectZero替换它
CGRect.zero
其他回答
结构以及Core Graphics和其他api中的所有其他符号都变得更加清晰,还包括参数名称。 https://developer.apple.com/reference/coregraphics#symbols
CGRect(x: Int, y: Int, width: Int, height: Int)
CGVector(dx: Int, dy: Int)
CGPoint(x: Double, y: Double)
CGSize(width: Int, height: Int)
CGPoint例子:
let newPoint = stackMid.convert(CGPoint(x: -10, y: 10), to: self)
CGVector例子:
self.physicsWorld.gravity = CGVector(dx: 0, dy: gravity)
CGSize例子:
hero.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 16, height: 18))
CGRect中例子:
let back = SKShapeNode(rect: CGRect(x: 0-120, y: 1024-200-30, width: 240, height: 140), cornerRadius: 20)
苹果博客
Swift 3中的Swift语法和API重命名的变化使语言感觉更自然,并且在调用Cocoa框架时提供了更Swift的体验。流行的框架Core Graphics和Grand Central Dispatch在Swift中有新的、更清晰的界面。
额外提示:为什么没有人提到它的简写形式呢?
CGRect(origin: .zero, size: size)
. 0而不是cgpoint . 0
定义了类型后,可以安全地省略它。
而不是CGSizeMake添加CGSize它将工作。 在objective c中使用CGSizeMake。
你不应该把make和swift结合使用
你可以用CGRectZero替换它
CGRect.zero
可以简单地使用CGPoint或CGSize的实例创建CGRect,如下所示。
let rect = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: 100, height: 100))
// Or
let rect = CGRect(origin: .zero, size: CGSize(width: 100, height: 100))
或者如果我们想在CGFloat或Double或Int中指定每个值,我们可以使用这个方法。
let rect = CGRect(x: 0, y: 0, width: 100, height: 100) // CGFloat, Double, Int
CGPoint可以这样创建。
let point = CGPoint(x: 0,y :0) // CGFloat, Double, Int
可以这样创建CGSize。
let size = CGSize(width: 100, height: 100) // CGFloat, Double, Int
同样,size和point的值为0,也可以这样做。
let size = CGSize.zero // width = 0, height = 0
let point = CGPoint.zero // x = 0, y = 0, equal to CGPointZero
let rect = CGRect.zero // equal to CGRectZero
CGRectZero & CGPointZero替换为CGRect。零& CGPoint。Swift 3.0是零。