듀다의 성장개발로그

iOS Swift - Frame과 Bounds 본문

카테고리 없음

iOS Swift - Frame과 Bounds

du-da 2021. 3. 8. 22:24

Frame과 Bounds의 역할은 UIView의 instance property(객체 내부에서 사용하는 변수 속성)입니다.

객체의 어떤 정보를 나타내는 좌표(x,y), 너비, 높이 값 등을 갖는 멤버 변수라는 뜻으로

즉 Frame과 Bound는 변수입니다.

 

Frame과 Bounds의 차이점에 대해 이야기하면,

Frame은 SuperView를 기준으로 좌표를 표시하지만

Bounds는 자기 자신을 기준으로 좌표를 표시합니다.

 

여기서 SuperView란?

뷰 안에는 뷰를 담을 수 있습니다. 이 경우 뷰는 어떤 상위 뷰에 속한 상태로 존재하게 되며, 안의 뷰는 자식 뷰, 자식 뷰를 담고 있는 뷰는 부모 뷰라고 부릅니다. 이때의 '부모 뷰'를 SuperView라고 합니다.

 

Frame과 Bounds에서의 좌표란?

Frame에서는 부모 뷰의 왼쪽 상단 모서리로부터 얼마나 떨어져 있는지에 대한 정보로 위치를 표시합니다. 부모 뷰로부터 떨어진 만큼 표시되는 위치를 Frame의 좌표라고 합니다.

 

Bounds는 자기 자신을 기준으로 좌표를 표시하므로 Bounds의(왼쪽 상단 모서리의) 좌표는 0,0이 됩니다.

즉, Bounds는 위치 정보를 저장하지 않습니다.

좌표를 표시하는 이유는 뷰가 어디에 위치하는지 표시하기 위해서이죠.

 

그렇다면 Frame은 위치나 크기를 표시하는 데에 사용할 수 있을 것이고,

Bound는 View 내부에서 변경하거나 정렬할 때 사용할 수 있을 것입니다.