Partial Corner Shaving

최완식·2022년 8월 12일
0

UIKit

목록 보기
23/33
post-thumbnail

부분적으로 rounding 처리하는 방법을 알아보자.

Answer

view.layer.masksToBounds = true
view.layer.cornerRadius = 10
view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]

동작은 간단하다. 다만, 이걸 어떻게 일반화하여 적용하고 쉽게 사용할 수 있게 만들까가 더 어려운 질문이다. 다양한 방법들에 대해서만 적어두겠다. 사용할 때는 실제로 만들어서 사용하자.

  1. corner의 위치(왼위, 오위, 왼아래, 오아래)와 그 정도(반지름)에 대한 정보는 따로 관리하는 것이 좋다.
    • 즉, 함수의 파라미터로 단순히 넣는 방법은 유지보수 측면에서 그리 좋지 못하다.
    • 연관된 값이기 때문에 캡슐화를 해서 가지고 있는 것이 더 좋다.
  2. 외부에서 사용할 때는 .layerMinXMinYCorner와 같이 안읽히는 값 말고 직관적인 다른 것이 필요하다.
    • UIRectCorner를 생각해보자.
  3. 1을 적용했다면 결국 이러한 값을 내부적으로 view에 적용할 방법이 필요하다.
    • 1의 구조체에서 view를 외부에서 받아서 처리하는 방법이 있다.
  4. 실제로 외부에서 사용할 시 UIView의 함수를 호출하는 것 말고 다른 방법도 있을 수 있다.
    • 연산자 정의

여기까지 말해줬으면 어떻게 구현할 수 있겠지? 내 컴퓨터 .md를 찾아볼 것

Reference

profile
Goal, Plan, Execute.

0개의 댓글