아마도 앱의 그림 부분에 SpriteKit
을 사용하신 적이 있으십니까? Spritekit
을 사용하면 SKShapeNode
을 사용하여 도형을 만들고 fillColor
속성을 SKShapeNode
으로 사용하여 여러 가지 색상으로 칠할 수 있습니다. 새로 만든 도형을 이미지로 채우려면 SKSpriteNode
에 이미지를 놓고 SKCropNode
을 사용하여 자르고 의 maskNode
속성을 SKShapeNode
으로 설정하십시오.
Eample :
import UIKit
import SpriteKit
class DrawView: SKScene {
override func didMoveToView(view: SKView) {
scaleMode = .ResizeFill
backgroundColor = UIColor.whiteColor()
//creating a triangle and filling it with the color blue
let path = CGPathCreateMutable()
CGPathAddArc(path, nil, 160, 284, 0, 0, CGFloat(M_PI*2), true)
CGPathAddLineToPoint(path, nill, 60, 184)
CGPathAddLineToPoint(path, nill, 260, 184)
CGPathAddLineToPoint(path, nill, 60, 284)
let triangle = SKShapeNode()
triangle.lineCap = .Round
triangle.lineJoin = .Round
triangle.fillColor = UIColor.blueColor()
triangle.path = path
addChild(triangle)
//placing image into SKSpriteNode
let image = SKSpriteNode(imageNamed: "yourImage")
image.size = CGSizeMake(320, 568)
image.position = CGPointMake(160, 284)
//creating an SKCropNode
let imageCrop = SKCropNode()
imageCrop.position = CGPointMake(0, 0)
imageCrop.addChild(image) //adding image to the SKCropNode
imageCrop.maskNode = triangle //using the triangle created as a mask
addChild(imageCrop)
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
//create spritekit scene
let skView = SKView(frame: CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height))
skView.center = CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height/2)
self.view.addSubview(skView)
//add drawing view to the scene
let drawView = DrawView()
sKView.presentScene(drawView)
}
}
까다로운 부분이 SKShapeNode
을 채우기 위해 SKSpriteNode
및 SKCropNode
을 재배치 할 예정이다.