
UIDrawPath 클래스의 addRectangle 함수는 정사각형을 그리는 함수입니다. 이 함수의 첫 번째 인자인 rect 매개변수는 CGRect 타입의 값을 받는데요.
rect 매개변수는 정사각형의 위치와 크기를 지정하는 역할을 합니다.
rect 매개변수에 x, y, width, height 값을 모두 지정하는 경우, 정사각형이 잘 그려집니다.
rect 매개변수에 x, y, width만 지정하는 경우, 정사각형의 height는 width와 동일한 값으로 자동 계산됩니다.
rect 매개변수에 x, y, height만 지정하는 경우, 정사각형의 width는 height와 동일한 값으로 자동 계산됩니다.
rect 매개변수에 x, y만 지정하는 경우, 정사각형의 width와 height는 0으로 자동 계산됩니다.
이러한 경우에 대해 UIDrawPath::addRectangle 함수가 정사각형을 올바르게 그렸는지 확인하고 싶다면, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let path = UIBezierPath()
path.move(to: CGPoint(x: 10, y: 10))
path.addLine(to: CGPoint(x: 10, y: 100))
path.addLine(to: CGPoint(x: 100, y: 100))
path.addLine(to: CGPoint(x: 100, y: 10))
path.addLine(to: CGPoint(x: 10, y: 10))
let rect1 = CGRect(x: 10, y: 10, width: 100, height: 100)
path.addRectangle(rect1)
let rect2 = CGRect(x: 10, y: 10, width: 100, height: 0)
path.addRectangle(rect2)
let rect3 = CGRect(x: 10, y: 10, width: 0, height: 100)
path.addRectangle(rect3)
let rect4 = CGRect(x: 10, y: 10, width: 0, height: 0)
path.addRectangle(rect4)
let shapeLayer = CAShapeLayer()
shapeLayer.path = path.cgPath
shapeLayer.strokeColor = UIColor.black.cgColor
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.lineWidth = 2
view.layer.addSublayer(shapeLayer)
}
}
이 코드를 실행하면, 정사각형이 잘 그려지는지 확인할 수 있습니다.
2025-07-07 15:49