iOS/Swift

[ Swift ] UIProgressView에서 CornerRadius를 조정하는 방법

경푸 2022. 9. 20. 18:30
반응형

안녕하세요~

 

오늘은 UIProgressView에서 TrackView와 Progress의

ConerRadius를 조정하는 방법에 대해서 정리하려고 합니다 : )

 

일단 ProgressView를 생성하고

Subviews를 출력해보면 다음과 같이 나오는 걸 확인하 실 수 있습니다.

 

[<UIImageView: 0x7fe5d210e970; frame = (0 0; 0 0); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x600003046340>>, <UIImageView: 0x7fe5d210ed50; frame = (0 0; 0 0); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x600003046280>>]

 

두 개의 ImageView가 존재하는데 첫 번째는 TrackView, 두 번째는 안쪽의 Progress에 해당하는 부분입니다.

 

1. 기본적인 ProgressView의 모습

- ProgressView의 TrackView와 Progress의 컬러만 정해준 경우

 

progressView.trackTintColor = UIColor.lightGray
progressView.progressTintColor = UIColor.red

progressView.progress = 0.5

 

 

2. CornerRadius 적용 후 모습

- TrackView의 ClipsToBounds를 True값으로 주면 다음과 같이 TrackView의 CornerRadius가 적용된 걸 확인하 실 수 있습니다!

progressView.trackTintColor = UIColor.lightGray
progressView.progressTintColor = UIColor.red

progressView.clipsToBounds = true
        
progressView.progress = 0.5

ClipsToBounds 적용 전
ClipsToBounds 적용 후

 

 

3. Progress에도 CornerRadius를 적용하고 싶다면!

- 위에서 설명했던 Subview에 접근해 ClipsToBounds값을 True로 변경하고 CornerRadius값을 주면 다음과 같이 나오게됩니다.

progressView.trackTintColor = UIColor.lightGray
progressView.progressTintColor = UIColor.red

progressView.clipsToBounds = true
// 위에서 설명한 것 처럼 ProgressView의 subView[1]은 Progress
progressView.subviews[1].clipsToBounds = true

progressView.progress = 0.5
// 이런식으로!
progressView.layer.cornerRadius = 8
progressView.layer.sublayers![1].cornerRadius = 6

두 가지 모두 적용한 모습

 

더 좋은 방법이 있다면

댓글로 알려주세요~

 

그럼 이만 👋🏻 👋🏻 👋🏻

 

 

 

반응형