반응형
먼저 frame이란 슈퍼 뷰(상위 뷰)의 좌표 시스템에서 뷰의 위치와 크기를 나타내는 사각형입니다.
반면, bounds는 자신의 좌표 시스템에서의 뷰의 위치와 크기를 나타내는 사각형입니다.
말로만 봐서는 이해가 안 되기 때문에 직접 view의 frame과 bounds를 출력해봤습니다.
초록색 뷰를 Safe Area의 좌측 상단과 우측 하단에 맞췄을 때 frame의 x, y 좌표가 바뀌는 것을 볼 수 있었지만
bound의 x,y 좌표는 바뀌지 않는 것을 볼 수 있습니다.
이를 통해 frame은 상위 뷰를 기준으로 위치를 정해줄 때 사용할 수 있다는걸 알았습니다.
bound는 (0,0)을 디폴트로 정해져 있고 값을 변경하게 되면 아래 사진처럼 초록색 뷰가 새로 그려지는 것을 볼 수 있습니다.
그래서 bound는 ScrollView에서 수직이라면 bounds의 y 좌표를 바꿔서 스크롤하고 수평이라면 bounds의 x 좌표를 바꿔서 스크롤하는 로직이라고 합니다.
결과적으로 frame은 위치와 크기를 정해줄 때 사용할 수 있고 bounds는 위치 정보가 없기 때문에 크기를 변경하거나 확인할 때 사용할 수 있습니다. 예를 들어, frame은 view의 위치와 크기를 설정할 때 쓰고 bounds는 회전된 뷰의 실제 크기를 확인하거나 하위 뷰를 내부적으로 정렬하는 등의 경우에 쓰인다고 합니다.
잘못된 부분 피드백해주시면 감사합니다!
참조:
반응형
'iOS' 카테고리의 다른 글
[iOS] App의 Life Cycle (0) | 2021.01.16 |
---|---|
[iOS] 시뮬레이터에서 할 수 없는 것들 (0) | 2021.01.12 |
[iOS] UNUserNotificationCenter를 이용해서 로컬 푸시하기! (1) | 2021.01.05 |
[iOS] User Notification (1) | 2020.12.29 |
[iOS] Label에 취소선 긋기 (1) | 2020.12.24 |
댓글