본문 바로가기
iOS

[iOS] Frame과 Bounds의 차이

by thoonk: 2021. 1. 12.

먼저 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는 회전된 뷰의 실제 크기를 확인하거나  하위 뷰를 내부적으로 정렬하는 등의 경우에 쓰인다고 합니다. 

 

잘못된 부분 피드백해주시면 감사합니다!

 

참조:

frame

 

Apple Developer Documentation

 

developer.apple.com

bounds

 

Apple Developer Documentation

 

developer.apple.com

zeddios.tistory.com/231

 

iOS ) Frame과 Bounds의 차이 (2/2)

우리 저번시간(?)에 Frame와 Bounds의 차이에 대해서 알아보았죠? 아직 글을 안읽어보신 분들은 읽어보시는걸 추천드립니당 위 글에서는 정말 "차이"를 알아보았는데요, 그럼 Frame과 Bounds를 언제써

zeddios.tistory.com

 

댓글