반응형
iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다.
Slider를 구현함에 있어 양 사이드가 꽉 채워지지 않는 문제가 있었다.
슬라이더의 버튼이 슬라이더의 중앙에, 슬라이더의 버튼이 컸다면 문제가 없었겠지만 디자인 요구사항에 맞춰 개발하다보니
왼쪽 공간하고 오른쪽 공간이 남는 문제가 있었다.
import UIKit
class CustomSlider: UISlider {
override func layoutSubviews() {
super.layoutSubviews()
}
override func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect {
var originalRect = super.thumbRect(forBounds: bounds, trackRect: rect, value: value)
var offsetForValue: CGFloat = 0
offsetForValue = originalRect.size.width * CGFloat(value / (self.maximumValue - self.minimumValue)) - ((value > 0) ? 20 : 14)
originalRect.origin.x += offsetForValue
return CGRect(x: originalRect.origin.x, y: newY, width: originalRect.width, height: originalRect.height)
}
}
슬라이더의 Value 값에 따라 thumbRect의 위치를 변화시켜 양 끝에도 슬라이더 버튼이 갈 수 있게끔 수정했다.
참고 : https://stackoverflow.com/questions/21520940/thumb-image-does-not-move-to-the-edge-of-uislider
반응형
'iOS > 코드조각' 카테고리의 다른 글
[iOS, Swift] UserDefaults 사용 예제 (0) | 2022.09.27 |
---|---|
[iOS, Swift] View 애니메이션 추가(위아래 반복) (1) | 2022.09.20 |
[iOS, Swift] WKWebView TapGesture 동작하지 않을 때 (0) | 2022.09.19 |
[iOS, Swift] Toggle 기능 구현 (삼항 연산자) (0) | 2022.09.10 |
[iOS, Swift] UIView 특정 모서리에 Radius 값 주기 (0) | 2022.08.30 |