프로그래밍/Swift
UIImage, cornerRadius 적용하는 방법
Mr-후
2022. 9. 30. 16:40
반응형
오늘 UISlider 커스텀 작업을 하면서 UISlider의 setThumbImage() 함수를 호출하기 하려고 이미지를 하나 만들었더니 사각형으로 나와서 살짝 당황했다.
물론 내 머리로 짜는 것은 아니고 인터넷을 찾아보니 Objective-C로 된 소스가 있어 Swift로 컨버팅 했다.
유용할 것 같아 함수로 만들어서 사용하는 중.
func cornerRadius(radius: CGFloat) -> UIImage {
let image: UIImage = self
UIGraphicsBeginImageContextWithOptions(image.size, false, image.scale)
let rect: CGRect = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
UIBezierPath(roundedRect: rect, cornerRadius: radius).addClip()
image.draw(in: rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
그리고 UISlider 사이징 조정을 위해 override하는 함수 예제를 샘플로 넣어 둔다.
class PlayBarSlider: UISlider {
@IBInspectable var trackHeight: CGFloat = 2
override func trackRect(forBounds bounds: CGRect) -> CGRect {
//set your bounds here
let customBounds = CGRect(origin: bounds.origin, size: CGSizeMake(bounds.width, trackHeight))
super.trackRect(forBounds: customBounds)
return customBounds
}
}
인터넷 검색하면 수두룩하지만...
그래도 내 블로그에 없으니 포스팅함. ^ . *;
반응형