Inset이 뭘까
매개 변수를 제공하지 않으면 SwiftUI는 네 방향 (상단, 하단, 선행 및 후행) 및 .stretch resizing mode 모두에 대해 inset 이 없다고 가정합니다.
여기서 말하는 Inset 이 뭘까
더 큰 물체 내에 위치하고 있는 무언가 라고 사전은 설명한다.
그럼 Bound 와 Frame 과 같은 건가 싶기도 한데
iOS - Difference Between Offset And Inset When Setting UIView Shadow?
글을 보면
물체 A 에 대해 그림자를 입힐때
- Offset: 그림자가 그려지는 물체 A에 대해서 상대적으로 그림자가 얼마나 떨어진 건지에 대한 값
- Inset: 물체 A 에 대한 상대적인 그림자의 size 값
*inset 을 (-10, -10)으로 할 경우 그림자는 물체 A 보다 10 pixels 넓어지고 10 pixels 높아진다라고 한다.
(양수는 그림자를 더 작아지게 한다.)
이렇게 이해하고 코드를 다시 보자면
- ShadowColor 를 정해준다.
- ShadowOffSet을 x 방향 0.0 y 방향 -5.0 로 그림자를 위로 올린다.
- 투명도 설정
- 곡률 설정
- CGRectInset 에 -10과 -5 만큼 (top/bottom) 크기를 늘린다.
아직 확실하게 잘 모르겠다. Inset 키워드를 쓰는 용어를 보자
번역하면 "콘텐츠보기가 안전 영역 또는 스크롤보기 가장자리에서 삽입되는 사용자 지정 거리입니다."
이 프로퍼티는 content view 의 edges로 부터 content의 거리를 띄워주는데 사용한다.
(UIScrollView 내의 프로퍼티)
그럼 edge로 부터 안쪽의 content 의 거리를 띄워준다 (공간을 삽입한다?) 라고 이해가 된다.
UIEdgeInsets 타입인데 이건뭔가
Edge inset 값은 사각형에 적용되어 사각형에 의해 표시되는 영역을 줄이거나 늘리는 데 사용된다.
특히 edge insets은 view의 frame을 수정할때 사용된다.
양수값의 경우 frame을 inset(shrink) 줄어들게 하고
음수값의 경우 frame을 outset(expanded) 늘어나게 한다.
ContentInset
margin 이나 padding 을 줄 수 있다는데 아래와 같이 Margin 와 Padding을 이해한다면
Inset으로 padding으로 원래 사이즈 보다 늘리려면 양수값(expand) 으로 하고 줄일려면 value 를 음수값(shrink) 으로 주는 걸로 이해된다.
safeAreaInsets 은 inset의 집합으로 기존 view 에 safeAreaInsets 에 있는 inset을 적용하여 safe area를 얻을 수 있는 프로퍼티이다. 만약 view 전체가 safe area 라면 edge insets은 0 일 것이다.
종합적으로 inset 은 container 역할을 하는 view 로 부터 padding 또는 margin 을 줄 수 있는 개념으로
명사로 사용될 경우 그 값 자체 (양수면 container 보다 작게, 음수면 container 보다 크게)를 나타내고
동사로 사용될 경우 끼워넣다 라는 뜻 인것 같다.
한마디로 표현하지 못하겠다.
CSS 프로퍼티에서 inset은
margin 의 4방향 값들이라고 하는데 inset = margin 이라 할 수 있는지 모르겠다.