CGPathMoveToPoint 在创建路径时遇到一些麻烦
CGPathMoveToPoint have some trouble in creating path
我使用以下代码从 CGPoint
array() 创建路径。
public func creatPath (for points:[CGPoint]) {
let path = CGMutablePath()
let startPoint = points.first
CGPathMoveToPoint( path, CGAffineTransform.identity, startPoint.x, startPoint.y)
var index = 0
for point in points {
if index == 0 { continue }
CGPathAddLineToPoint(path, nil, points.x, points.y)
index += 1
}
path.closeSubpath()
}
但它总是向我显示以下错误:
nil is not compatible with expected argument type UnsafePointer <CGAffineTransForm>
我也试过用CGAffineTransform.identity
然后显示:
Cannot convert value of type 'CGAffineTransform' to expected argument type 'UnsafePointer<CGAffineTransform>
'
我不确定我们还能在这里使用什么。我正在使用 Xcode8 beta 6。Swift 3.0
编辑: 当我尝试时:-
var transform = CGAffineTransform.identity as CGAffineTransform;
CGPathMoveToPoint( path, &transform, startPoint.x, startPoint.y)
显示:
'CGPathMoveToPoint' is unavailable: Use move(to:transform:)
尝试时:
CGPathMoveToPoint( path, NSNull(), startPoint.x, startPoint.y)
Error is: Cannot convert value of type 'NSNull' to expected argument type 'UnsafePointer'
Swift 3 CGMutablePath
有一个大大改进的面向对象的接口。最重要的是:transform 参数有一个默认值,可以省略。
public func creatPath (for points:[CGPoint]) {
let path = CGMutablePath()
let startPoint = points.first
path.move(to: startPoint)
var index = 0
for point in points {
if index == 0 { continue }
path.addLine(to: point)
index += 1
}
path.closeSubpath()
}
注意:我已将循环变量从 points
更改为 point
以避免与参数名称冲突。
更新
您可以简化代码:
public func creatPath (for points:[CGPoint]) {
let path = CGMutablePath()
path.addLines(between: points)
path.closeSubpath()
}
我使用以下代码从 CGPoint
array() 创建路径。
public func creatPath (for points:[CGPoint]) {
let path = CGMutablePath()
let startPoint = points.first
CGPathMoveToPoint( path, CGAffineTransform.identity, startPoint.x, startPoint.y)
var index = 0
for point in points {
if index == 0 { continue }
CGPathAddLineToPoint(path, nil, points.x, points.y)
index += 1
}
path.closeSubpath()
}
但它总是向我显示以下错误:
nil is not compatible with expected argument type UnsafePointer
<CGAffineTransForm>
我也试过用CGAffineTransform.identity
然后显示:
Cannot convert value of type 'CGAffineTransform' to expected argument type 'UnsafePointer
<CGAffineTransform>
'
我不确定我们还能在这里使用什么。我正在使用 Xcode8 beta 6。Swift 3.0
编辑: 当我尝试时:-
var transform = CGAffineTransform.identity as CGAffineTransform;
CGPathMoveToPoint( path, &transform, startPoint.x, startPoint.y)
显示:
'CGPathMoveToPoint' is unavailable: Use move(to:transform:)
尝试时:
CGPathMoveToPoint( path, NSNull(), startPoint.x, startPoint.y)
Error is: Cannot convert value of type 'NSNull' to expected argument type 'UnsafePointer'
Swift 3 CGMutablePath
有一个大大改进的面向对象的接口。最重要的是:transform 参数有一个默认值,可以省略。
public func creatPath (for points:[CGPoint]) {
let path = CGMutablePath()
let startPoint = points.first
path.move(to: startPoint)
var index = 0
for point in points {
if index == 0 { continue }
path.addLine(to: point)
index += 1
}
path.closeSubpath()
}
注意:我已将循环变量从 points
更改为 point
以避免与参数名称冲突。
更新
您可以简化代码:
public func creatPath (for points:[CGPoint]) {
let path = CGMutablePath()
path.addLines(between: points)
path.closeSubpath()
}