샘성의 iOS 개발 일지

UIView 모서리 선택적으로 깎기 본문

iOS/UiKit

UIView 모서리 선택적으로 깎기

SamusesApple 2023. 5. 2. 16:51
728x90

네모난 버튼의 전체 꼭짓점을 둥글게 깎는법 말고 

원하는 꼭짓점만 깎는 법을 다루게 되었다.

 

 

이 녀석을 활용하면 된다.

 

    // 본인은 선택적 모서리 깎기를 여러번 할 것이기 때문에 UIView 확장했다.
    extension UIView {
     func addRoundedCorners(corners: CACornerMask, radius: CGFloat) {
        layer.cornerRadius = radius       // 얼마나 깎을거야?
        layer.maskedCorners = [corners]   // 어디 모서리 깎을거야?
     }
    }

깎을 모서리 선택지

layer에서 최소 x, 최소 y측 코너  >> 왼쪽 밑 모서리

layer에서 최대 x, 최소 y측 코너 >> 오른쪽 밑 모서리

layer에서 최소 x, 최대 y측 코너 >> 왼쪽 위 모서리

layer에서 최대 x, 최대 y측 코너 >> 오른쪽 위 모서리

 

정말 정직하게 지어놓은 것 같다.

 

 

 

좌표로 생각하면 이해하기 편하지만 혹시 몰라 그림으로 그려보았다.

 

파랑색: 최소 / 노랑색: 최대

 

 

이제 저 확장한 코드 사용하는 법은 정말 간단하다.

배열 형태로 깎고싶은 모서리를 골라서 corners에 넣으면 된다.

 

 

    // 왼쪽 모서리 다 10만큼 깍기
    let leftCornerButton: UIButton = {
        let button = UIButton(type: .system)
        button.addRoundedCorners(corners: [.layerMinXMaxYCorner, .layerMinXMinYCorner], radius: 10.0)
        return button
    }()
    
    // 오른쪽 모서리 다 10만큼 깎기
    let rightCornerButton: UIButton = {
        let button = UIButton(type: .system)
        button.addRoundedCorners(corners: [.layerMaxXMaxYCorner, .layerMaxXMinYCorner], radius: 10.0)
        return button
    }()

이렇게!

728x90