728x90
Core graphics
쿼츠 라이브러리를 이용하여 가벼운 2D 렌더링 작업을 수행할 수 있는 라이브러리입니다.
경로로 그림 그리기 뿐만 아니라 안티앨리어싱 렌더링, 그라디언트, 이미지, PDF 등 의 작업에도 사용됩니다.
그림 그리기
UIGraphicsBeginImageContext, UIGraphicsEndImageContext로 bitmap-based graphic context를 추가하거나 제거합니다.
context를 이용해서, 선, 사각형, 원, 호를 그리거나 도형의 색깔을 채울 수 있습니다.
@IBAction func btnDrawFill(_ sender: UIButton) {
UIGraphicsBeginImageContext(imgView.frame.size)
let context = UIGraphicsGetCurrentContext()!
// draw rectangle
context.setLineWidth(1.0)
context.setStrokeColor(UIColor.red.cgColor)
context.setFillColor(UIColor.red.cgColor)
let rectangle = CGRect(x: 70, y: 50, width: 200, height: 100)
context.addRect(rectangle)
context.fill(rectangle)
context.strokePath()
// draw circle
context.setLineWidth(1.0)
context.setStrokeColor(UIColor.blue.cgColor)
context.setFillColor(UIColor.blue.cgColor)
let circle = CGRect(x: 70, y: 200, width: 200, height: 100)
context.addRect(circle)
context.fill(circle)
context.strokePath()
// draw traiangle
context.setLineWidth(1.0)
context.setStrokeColor(UIColor.green.cgColor)
context.setFillColor(UIColor.green.cgColor)
context.move(to: CGPoint(x: 170, y: 350))
context.addLine(to: CGPoint(x: 270, y: 450))
context.addLine(to: CGPoint(x: 70, y: 450))
context.addLine(to: CGPoint(x: 170, y: 350))
context.fillPath()
context.strokePath()
imgView.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
그래픽이라는 용어 때문에 어려울 것이라 생각했지만 코드에는 Delegate도 없고, 아주 직관적인 형태여서 어렵지 않습니다.
Reference
'iOS > 스위프트로 아이폰 앱 만들기' 카테고리의 다른 글
[18장] Swipe Gesture (0) | 2021.10.20 |
---|---|
[17장] Tab & Touch (0) | 2021.10.20 |
[15장] Camera & Photo Library (0) | 2021.10.19 |
[14장] Video (0) | 2021.10.19 |
[13장] Audio (0) | 2021.10.17 |