iOS | CusotomView Frame 생략

일어나 개발해야지·2023년 10월 16일

Swift

목록 보기
20/21

Question

이전 포스팅에서 아래 두 코드가 같은 의미이고,
값이 0임데도 불구하고 UI가 그려지는 이유에 대해 Question mark를 가졌었다.

frame: CGRect()
frame: CGRect(x: 0, y: 0, width: 0, height: 0)

Answer

Frame은 AutoLayout이 설정되면, 무력화된다고 한다.
AutoLayout에서 적용한 사이즈가 우선순위가 더 높기 때문이라고있다고 이해했다.

따라서, AuotLayout 적용시 frame의 작성은 필수적이지 않으며 생략이 가능하는 점도 확인했다.

How To

//기존
    init(frame: CGRect, titleText: String) {
        super.init(frame: frame)
          title.text = titleText

    }
//frame 생략
  init(titleText: String) {
        super.init(frame:  CGRect())
           title.text = titleText

    }

이렇게 수정하면 customeView를 불러올때 마다 frame관련코드를 생략할 수 있어서 좋으다 ✌️

Next task

개별 border (CALayer) 를 사용했을 때는, AutoLayout보다 Frame size가 필수적였는데
이건 어떻게 다른걸까.. ?

Keyword Memo

layer = Frame 이 주관
Core Graphics
UIkit

0개의 댓글