FrameVsBounds2
작성일
Frame Vs Bounds 2
전 내용을 정리해보면
origin을 기준으로 보면
frame -> Super View의 좌표계
bound -> 자기자신의 좌표계
size를 기준으로 보면
frame -> View 영역을 모두 감싸는 사각형
bounds -> View 영역 자체
모두 감싸기 대문에 회전을 시키면 size가 달라졌던 것이다.
frame
frame을 보면 이제 “상위뷰”에서 영향을 받는다는걸 알 수있는데.
우선 총 3개의 뷰가 있다고 치자,
그러면 첫번쨰뷰를 기준으로 2번쨰뷰가 10,40 정도로 떨어져 있고, 3번째뷰가 2번째 뷰 기준으로 20,20 이렇게 떨어져 있었다고치자
만약 2번쨰 뷰를 10,40에서 40,40 으로 바꿔준다면 어떻게 될까?
그러면 2번째뷰에서떨어진 3번째뷰도 그대로 20,20이 움직인다.
SuperView(상위뷰)를 기준으로 만든것이니 당연히 움직인다.
bounds
하지만 bounds는 다르다.
origin이 0,0으로 모두 초기화 되어있다.
이때 bounds에 origin즉 0,0 을 변경시켜보면
bounds의 origin을 변경시키는 건, 우리가 보는 관점 자체를 옮겨준것이다.
이게 무슨 말이냐면, view는 화면보다 크게 그려질 수있는데,
그래도 우리는 화면안에 있는 뷰만 볼수 있다. 관점이 그러니까
하지만, bounds를 옮겨주면 이 관점 자체를 봐꾸어서 보여줄수있는 것이다.
이렇기 때문에
" 자기 자신은 가만히 있고,
Sub View들이 반대 좌표로 이동하는 것 " 처럼 보여지는 것이다.
실제론
"Sub View들이 반대 좌표로 가는 게 아니라,
View가 Sub View를 바라보는 시점(viewport)이 달라진 것"
이다.