2

CGMutablePathRef と CGPoint を入力として使用し、このような CGAffineTransformation の代わりに NULL/nil を使用して、Swift で CGPathMoveToPoint() を呼び出そうとしました。

CGPathMoveToPoint(path, nil, point.x as CGFloat, point.y as CGFloat)

ただし、式を NilLiteralConvertible 型に変換できないというエラーが常に表示されます。このコードが機能しない理由がわかりましたか? nil引数の代わりにSwiftで何を使用する必要がありますか? nil の代わりに CGAffineTransformidentity を使用してみましたが、どちらも機能しません。ありがとう!

4

5 に答える 5

3

このコードは、ビュー内の赤い四角形を塗りつぶします。

let context:CGContextRef = NSGraphicsContext.currentContext()!.CGContext

var pathPoint:CGPoint = CGPoint()
pathPoint.x = CGFloat(225.0)
pathPoint.y = CGFloat(100.0)

var myMutablePath:CGMutablePath = CGPathCreateMutable()
CGPathMoveToPoint(myMutablePath, nil, pathPoint.x, pathPoint.y)
CGPathAddLineToPoint(myMutablePath, nil, pathPoint.x + CGFloat(50.0), pathPoint.y)
CGPathAddLineToPoint(myMutablePath, nil, pathPoint.x + CGFloat(50.0), pathPoint.y  + CGFloat(50.0))
CGPathAddLineToPoint(myMutablePath, nil, pathPoint.x, pathPoint.y  + CGFloat(50.0))
CGPathAddLineToPoint(myMutablePath, nil, pathPoint.x, pathPoint.y)

CGContextAddPath(context, myMutablePath);

CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0)
CGContextFillPath(context)
于 2014-12-15T05:40:11.413 に答える
1

これがSwift3で発生した場合は、新しい構文を確認してください。Xcode のエラー メッセージは誤解を招きます。これは nil だけの問題ではありません。コードの新しい構文の例:

path.move(to: point)
于 2017-02-26T19:16:16.617 に答える