Things take time

[SWIFT] CornerRadius 상단, 하단 특정 위치에만 주기 본문

iOS (기능)

[SWIFT] CornerRadius 상단, 하단 특정 위치에만 주기

겸손할 겸 2021. 6. 23. 09:46

[Round corner]

 

보통 CornerRadius줄 땐 아래와 같이 사용한다.

            view.layer.cornerRadius = 10
            view.layer.masksToBounds = true

 

 

그런데, 상단만 혹은 하단 또는 특정 위치만 주고싶을 땐 아래와 같이 사용한다.

            let bezierPath = UIBezierPath(roundedRect: view.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 10, height: 10))
            let maskLayer = CAShapeLayer()
            
            maskLayer.path = bezierPath.cgPath
            view.layer.mask = maskLayer

 

주의 할 점은, 대상이 UIViewController에서는 viewWillLayoutSubviews에서(insert view, addsubview등이 호출된 이후에 호출)하고 UIView안에서 사용할 경우엔 init에서 사용하면 된다.