转换代码到最新的swift 3.0后,我显示这个错误。

也告诉我解决方案CGSize = CGSizeMake(0,0)

static var frameAtStartOfPan: CGRect = CGRectZero
static var startPointOfPan: CGPoint = CGPointZero

这也是不可用的。


当前回答

快速修复了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

其他回答

在Swift 4中,它的工作原理如下

collectionView.setContentOffset(CGPoint.zero, animated: true)

在Swift 3中,您只需使用CGPoint即可。0或CGRect。0代替CGRectZero或CGPointZero。

然而,在Swift 4中,CGRect。零和“CGPoint”。0 '可以

快速修复了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

对于CGSize

CGSize(width: self.view.frame.width * 3, height: self.view.frame.size.height)

你可以用CGRectZero替换它

CGRect.zero