转换代码到最新的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
这也是不可用的。
当前回答
在Swift 3中,您只需使用CGPoint即可。0或CGRect。0代替CGRectZero或CGPointZero。
然而,在Swift 4中,CGRect。零和“CGPoint”。0 '可以
其他回答
在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
如果你想在swift 2中使用它们,你可以使用这些函数:
CGRectMake:
func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect {
return CGRect(x: x, y: y, width: width, height: height)
}
CGPointMake:
func CGPointMake(_ x: CGFloat, _ y: CGFloat) -> CGPoint {
return CGPoint(x: x, y: y)
}
CGSizeMake:
func CGSizeMake(_ width: CGFloat, _ height: CGFloat) -> CGSize {
return CGSize(width: width, height: height)
}
只要把它们放在任何课程之外,它就会起作用。(至少对我有用)
额外提示:为什么没有人提到它的简写形式呢?
CGRect(origin: .zero, size: size)
. 0而不是cgpoint . 0
定义了类型后,可以安全地省略它。
在Swift 4中,它的工作原理如下
collectionView.setContentOffset(CGPoint.zero, animated: true)