Bounds 와 Frame 의 차이점

2021-09-16
iOS

안녕하세요. 도미닉입니다.

오늘은 Bounds 와 Frame 에 대해서 알아보겠습니다.

우선 Frame 이 무엇인지에 대해 정리해보겠습니다.

frame 이란?

The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.

공식 문서에 위와 같이 설명합니다.

frame 은 사각형이고 슈퍼 뷰의 좌표 체계 안에서 뷰의 위치와 사이즈를 설명한다고 합니다.

공식 문서에 아래 Discussion 도 번역해보겠습니다.

Discussion

이 사각형은 상위 뷰의 좌표계에서 뷰의 크기와 위치를 정의합니다.
레이아웃 작업 중에 이 사각형을 사용하여 뷰의 크기와 위치를 설정합니다.
이 속성을 설정하면 center 프로퍼티에 지정된 point 가 변경되고 이에 따라 bounds 의 크기가 변경됩니다.
프레임 사각형의 좌표는 항상 point 로 지정됩니다.

아래 Bounds 에 대해서 알아보고 같이 비교하면서 좀 더 이해해봅시다.

bounds 란?

The bounds rectangle, which describes the view’s location and size in its own coordinate system.

공식 문서에 위와 같이 설명합니다.

bounds 는 자체 좌표계에서 뷰의 위치와 크기를 설명하는 bounds 사각형이라고 합니다.

bounds 는 경계라는 의미인데 자체적인 좌표에서 뷰의 위치와 크기를 설명해주는 사각형의 경계라고 이해가 됩니다.

공식 문서 아래 Discussion 도 번역해보겠습니다.

Discussion

기본 Bounds 의 origin 은 (0,0)이며 크기는 frame 속성의 사각형 크기와 동일합니다.
size 를 변경하면 중심점을 기준으로 view 가 커지거나 줄어듭니다.
size 를 변경하면 또한 frame 속성의 사각형 크기도 동일하게 변경됩니다.
bounds 사각형의 좌표는 항상 points 로 지정됩니다.

frame 과 bounds 의 차이

frame 은 상위 뷰로부터 현재 뷰의 위치와 사이즈를 결정하는데 사용합니다.
bounds 는 현재 뷰 내부에 뷰의 사이즈를 결정하는데 사용합니다.

정리

글로만 작성하니 이해가 어려운 것 같습니다.

해당 예제 코드를 유튜브로 찍어서 공유하도록 하겠습니다.

글 읽어주셔서 감사합니다.

참고

https://developer.apple.com/documentation/uikit/uiview/1622621-frame
https://developer.apple.com/documentation/uikit/uiview/1622580-bounds
https://zeddios.tistory.com/203
https://zeddios.tistory.com/231
https://sihyungyou.github.io/iOS-frame-bounds/