[swift] Swift Core Graphics로 그라피티 그리기

그라피티는 시대를 초월하여 계속해서 인기를 얻는 예술 형식 중 하나입니다. 이번 블로그 포스트에서는 Swift Core Graphics 프레임워크를 사용하여 iOS 앱에서 그라피티를 그리는 방법을 알아보겠습니다.

Core Graphics 소개

Core Graphics는 iOS 및 macOS 애플리케이션에서 2D 그래픽을 그리고 조작하기 위한 프레임워크입니다. 이를 사용하여 이미지를 그리거나 변형하고, 경로 및 영역을 그리는 등 다양한 2D 그래픽 작업을 수행할 수 있습니다.

그라피티 그리기

그라피티를 그리기 위해 UIView를 서브클래싱하고, draw(_:) 메서드를 사용하여 Core Graphics 컨텍스트에 터치 이벤트에 따라 무엇을 그리는지를 정의할 수 있습니다.

import UIKit

class GraffitiView: UIView {
    var path = UIBezierPath()

    override func draw(_ rect: CGRect) {
        UIColor.red.setStroke()
        path.stroke()
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        if let touch = touches.first {
            path.move(to: touch.location(in: self))
        }
    }

    override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
        if let touch = touches.first {
            path.addLine(to: touch.location(in: self))
            setNeedsDisplay()
        }
    }
}

위의 코드는 GraffitiView 클래스를 정의하고, 사용자가 화면에 터치하는 동안 UIBezierPath를 사용하여 터치 이벤트에 따라 선을 그리도록 합니다.

사용 예시

이제 GraffitiView를 사용하여 앱에서 그라피티를 그려볼 차례입니다.

import UIKit

class GraffitiViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let graffitiView = GraffitiView(frame: view.bounds)
        graffitiView.backgroundColor = .clear
        view.addSubview(graffitiView)
    }
}

위의 코드에서는 GraffitiView를 생성하고, 그것을 뷰 컨트롤러의 뷰에 추가하여 화면에 나타나도록 합니다.

이제 앱을 실행하고 화면에 손가락으로 터치하면, 그라피티를 그릴 수 있게 될 것입니다.

요약

Swift Core Graphics를 사용하여 iOS 앱에서 그라피티를 그리는 방법을 살펴보았습니다. Core Graphics를 사용하면 사용자의 터치 이벤트에 반응하여 동적으로 그래픽을 그릴 수 있어 매우 유용합니다.

더 많은 세부적인 내용은 Apple의 공식 문서에서 확인할 수 있습니다.