转换代码到最新的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
这也是不可用的。
当前回答
结构以及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中有新的、更清晰的界面。
其他回答
对于CGSize
CGSize(width: self.view.frame.width * 3, height: self.view.frame.size.height)
结构以及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中有新的、更清晰的界面。
在Swift 4中,它的工作原理如下
collectionView.setContentOffset(CGPoint.zero, animated: true)
快速修复了Swift3和iOS10中的CGRectMake, CGPointMake, CGSizeMake
添加以下扩展:
extension CGRect{
init(_ x:CGFloat,_ y:CGFloat,_ width:CGFloat,_ height:CGFloat) {
self.init(x:x,y:y,width:width,height:height)
}
}
extension CGSize{
init(_ width:CGFloat,_ height:CGFloat) {
self.init(width:width,height:height)
}
}
extension CGPoint{
init(_ x:CGFloat,_ y:CGFloat) {
self.init(x:x,y:y)
}
}
然后点击“在工作区中查找和替换” 找到CGRectMake, CGPointMake, CGSizeMake并将其替换为CGRect, CGPoint, CGSize
这些步骤可能会节省所有时间,因为Xcode目前不能让我们快速从Swift 2+转换到Swift 3
试试下面的方法:
var myToolBar = UIToolbar.init(frame: CGRect.init(x: 0, y: 0, width: 320, height: 44))
这是swift的最新版本