본문 바로가기
프로그래밍/Swift

UIImage, cornerRadius 적용하는 방법

by Mr-후 2022. 9. 30.
반응형

오늘 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
    }
}

 

인터넷 검색하면 수두룩하지만... 

그래도 내 블로그에 없으니 포스팅함. ^ . *;

 

반응형