[IOS] 원형 프로그레스바(circular progress bar)를 만드는 방법
원형 프로그레스바(circular progress bar)를 만드는 방법에는 여러 가지가 있지만, 가장 일반적인 방법 중 하나는 Core Graphics 프레임워크를 사용하여 직접 그리는 것입니다. 다음은 Core Graphics를 사용하여 원형 프로그레스바를 만드는 예제 코드입니다.
class CircularProgressView: UIView {
var progress: CGFloat = 0 {
didSet {
setNeedsDisplay()
}
}
override func draw(_ rect: CGRect) {
// 원의 경로 생성
let circlePath = UIBezierPath(ovalIn: rect)
// 원 내부 채우기 색상
UIColor.lightGray.setFill()
circlePath.fill()
// 원형 프로그레스바 그리기
let center = CGPoint(x: rect.midX, y: rect.midY)
let radius = min(rect.width, rect.height) / 2 * 0.8
let startAngle = -CGFloat.pi / 2 // 12시 방향부터 시작
let endAngle = startAngle + progress * 2 * CGFloat.pi // 프로그레스 비율에 따라 끝 각도 결정
let progressPath = UIBezierPath(arcCenter: center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true)
progressPath.lineWidth = 10
UIColor.blue.setStroke()
progressPath.stroke()
}
}`
위 코드에서 progress
프로퍼티를 업데이트하면, 해당 프로그레스바가 다시 그려집니다. 원의 내부를 채우는 색상과 프로그레스바의 색상, 두께 등은 상황에 따라 다르게 설정할 수 있습니다. 또한, 사용자 인터페이스 요소로 사용하기 위해 원형 프로그레스바를 UIView의 서브클래스로 구현하였습니다.
위 코드를 사용하여 원형 프로그레스바를 만들 수 있으며, 원하는 위치에 해당 뷰를 추가하여 사용할 수 있습니다.