카카오톡 프로필 사진처럼 동그라미 뷰를 만드는 것과 연계로
사진을 crop할때 프로필 사진에 사용되는 원 영역 외에는 dimming처리를 하고 싶어 사용한 코드
위 사진과 같이 네모 안의 동그라미 외의 부분을 dimming처리하는 코드다.
반원들은 네모 크기 조절하기 위해 붙인 circle view니 신경쓸 필요 없다.
/**
crop뷰 안의 동그라미 바깥부분을 가려주는 뷰를 만드는 함수
- parameter view : circle뷰의 rect정보
*/
func maskingCircleView(view:Rect) {
let maskRect = CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height)
UIGraphicsBeginImageContext(maskRect.size)
let context = UIGraphicsGetCurrentContext()
context?.setFillColor(UIColor.init(white: 0, alpha: 0.5).cgColor)
context?.fill(maskRect)
context?.setBlendMode(CGBlendMode.clear)
context?.setFillColor(UIColor.clear.cgColor)
context?.fillEllipse(in: maskRect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
let circleMaskingImageView = UIImageView(frame: maskRect)
circleMaskingImageView.image = image
circleMaskingImageView.backgroundColor = UIColor.clear
circleMaskingImageView.center = cropView.center
self.view.addSubview(circleMaskingImageView);
}
'프로그래밍 > iOS' 카테고리의 다른 글
[iOS] 특정 주소에 html파일이 있으면 보여주고, 아니면 안보여주게 만들기 (0) | 2017.11.17 |
---|---|
[iOS] iOS11에서 테이블뷰를 부를때 셀크기가 변하는 현상 (0) | 2017.09.21 |
[iOS] documentation (0) | 2017.09.20 |
[iOS] datePickerCell만들기 (0) | 2017.09.20 |
[iOS]메인스토리보드가 나타나기 전에 뷰 하나 끼워넣기 (0) | 2017.09.20 |