iOS/SwiftUI

Inset이 뭘까

HaningYa 2020. 10. 21. 20:07
728x90

매개 변수를 제공하지 않으면 SwiftUI는 네 방향 (상단, 하단, 선행 및 후행) 및 .stretch resizing mode 모두에 대해 inset 이 없다고 가정합니다.

여기서 말하는 Inset 이 뭘까

https://dictionary.cambridge.org/dictionary/english/inset

더 큰 물체 내에 위치하고 있는 무언가 라고 사전은 설명한다. 

그럼 Bound 와 Frame 과 같은 건가 싶기도 한데

iOS - Difference Between Offset And Inset When Setting UIView Shadow?

 

iOS - Difference Between Offset And Inset When Setting UIView Shadow?

So I wanted to put a 5 pixel shadow on my UIView on the top, left, and right of it. After much trial and error, this code seems to do the trick for me: self.layer.shadowColor = [[UIColor purpleCol...

stackoverflow.com

글을 보면
물체 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 키워드를 쓰는 용어를 보자

 

developer.apple.com/documentation/uikit/uiscrollview/1619406-contentinset

번역하면 "콘텐츠보기가 안전 영역 또는 스크롤보기 가장자리에서 삽입되는 사용자 지정 거리입니다."

이 프로퍼티는 content view 의 edges로 부터 content의 거리를 띄워주는데 사용한다.
(UIScrollView 내의 프로퍼티)

그럼 edge로 부터 안쪽의 content 의 거리를 띄워준다 (공간을 삽입한다?) 라고 이해가 된다.

UIEdgeInsets 타입인데 이건뭔가

https://developer.apple.com/documentation/uikit/uiedgeinsets

Edge inset 값은 사각형에 적용되어 사각형에 의해 표시되는 영역을 줄이거나 늘리는 데 사용된다.

특히 edge insets은 view의 frame을 수정할때 사용된다. 

양수값의 경우 frame을 inset(shrink) 줄어들게 하고 

음수값의 경우 frame을 outset(expanded) 늘어나게 한다.


ContentInset

https://levelup.gitconnected.com/what-exactly-are-contentoffset-contentinset-and-contentsize-of-a-uiscrollview-960207c75b88

margin 이나 padding 을 줄 수 있다는데 아래와 같이 Margin 와 Padding을 이해한다면

Inset으로 padding으로 원래 사이즈 보다 늘리려면 양수값(expand) 으로 하고 줄일려면 value 를 음수값(shrink) 으로 주는 걸로 이해된다.


safeAreaInsets 은 inset의 집합으로 기존 view 에 safeAreaInsets 에 있는 inset을 적용하여 safe area를 얻을 수 있는 프로퍼티이다. 만약 view 전체가 safe area 라면 edge insets은 0 일 것이다.

https://levelup.gitconnected.com/what-exactly-are-contentoffset-contentinset-and-contentsize-of-a-uiscrollview-960207c75b88

 

TextView의 여백, UIEdgeInsets로 줄여서 텍스트 열 맞추기

안녕하세요! 요즘 주말에 좋은 스터디팀원분과 함께 Firebase 강좌를 들으며 예제 앱을 만들어 보고 있는데요. 문득 포스팅하면 좋을 것 같은 주제가 떠올라서 포스팅을 하게 되었습니다. 그것은

0urtrees.tistory.com

 

종합적으로 inset 은 container 역할을 하는 view 로 부터 padding 또는 margin 을 줄 수 있는 개념으로 
명사로 사용될 경우 그 값 자체 (양수면 container 보다 작게, 음수면 container 보다 크게)를 나타내고
동사로 사용될 경우 끼워넣다 라는 뜻 인것 같다.

한마디로 표현하지 못하겠다.

 

CSS 프로퍼티에서 inset은 

margin 의 4방향 값들이라고 하는데 inset = margin 이라 할 수 있는지 모르겠다.

728x90