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

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

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

这也是不可用的。


当前回答

试试下面的方法:

var myToolBar = UIToolbar.init(frame: CGRect.init(x: 0, y: 0, width: 320, height: 44))

这是swift的最新版本

其他回答

如果你想在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)
}

只要把它们放在任何课程之外,它就会起作用。(至少对我有用)

你可以用CGRectZero替换它

CGRect.zero

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

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

对于CGSize

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

可以简单地使用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是零。