새싹

코드로 레이아웃 잡을 때 SnapKit leadingMargin vs leading 차이

Thor_yeom 2023. 8. 22. 17:19

 

좌 우 여백을 띄울때 

leadingMargin, trailingMagin 

leading ~ offset

leading ~ inset

 

이 세가지를 이용해서 여백을 띄울 수 있습니다. 

그렇다면 어떻게 다른지 비교를 해보겠습니다.

Snapkit를 사용한 코드와 스샷을 통해 비교해 보겠습니다.

// 상단 사진
make.leadingMargin.equalTo(20)
make.trailingMargin.equalTo(-20)

// 중앙 사진
make.leading.trailing.equalTo(view).inset(20)

// 하단 사진
make.leading.equalTo(view).offset(20)
make.trailing.equalTo(view).offset(-20)

 

상단에 있는것이 중단과 하단에 있는 사진과 

미묘하게 차이가 있는 것을 볼 수 있습니다.

 

수치로 확인해보면

 

첫번째 사진은 leadingMargin이 적용된 TextField의 레이아웃 값

두번째 사진은 leading에 inset or offset이 적용된 값입니다.

수치가 16정도 차이가 나네요...

 

왜 그런가...

메소드를 타고 들어가 봤더니

leadingMargin는 += leadingMargin으로  되어있는 것을 볼 수 있습니다.

default로 추가 되어 있는데,

 

그럼 margin값은 얼마나 default로 되어 있는 걸까? 에 대해 다시 찾아보았고

공식문서에서 찾을 수 있었습니다.

공식문서에 default 8로 되었다고 나와있었습니다.

 

결론 :

leadingMargin은 leading에 + 8 이 되어있기 때문에

동일한 값을 설정했을때 inset과 offset과 8정도 차이가 벌어진다.