Bounds와 Frame의 차이점
by 사슴비행기iOS 프로그래밍에서 bounds와 frame은 뷰의 위치와 크기를 나타내는 두 가지 속성입니다.
##1. Frame
* 부모뷰나 슈퍼뷰 좌표 시스템에서 뷰의 위치와 크기를 정의합니다.
* 예를 들어, `view.frame.origin.x`는 뷰의 왼쪽 상단 모서리의 x좌표를 나타내고, `view.frame.size.width`는 뷰의 너비를 나타냅니다.
##2. Bounds
* 뷰의 자체 좌표 시스템에서 위치와 크기를 정의합니다. 즉, 뷰가 자신을 기준으로 어디에 위치하고 얼마나 큰지를 나타냅니다.
* 일반적으로 `bounds.origin`은 (0,0)이며 `bounds.size`는 뷰의 실제 크기를 나타냅니다.
슈퍼뷰 안에 서브뷰가 2개 있다고 해보자.
그 때 frame과 bounds는 아래와 같다.
`subView1.frame = (50, 30, 100, 80)`
`subView2.frame = (250, 30, 100, 100)`
`subView1.bounds = (0, 0, 100, 80)`
`subView2.bounds = (0, 0, 100, 100)`
이 때 슈퍼뷰의 bounds를 변경한다.
`superView.bounds.origin.x = 100`
subView들의 frame과 bounds의 값은 동일하나,
subView가 이동한 것처럼 보일 수도 있지만, 실제로는 슈퍼뷰가 움직였다.
왜냐하면 여전히 상위뷰는 frame의 값은 변하지 않았고 bounds값만 달라졌기 때문이다.
bounds값이 변하면서 보여주는 위치가 변했다고 보면 이해하기 쉽다.
아래는 bounds만 변화시킨 결과이다.
이 때 위에서 말했듯이 슈퍼뷰의 frame값은 여전히 같다.
그래서 subView들은 슈퍼뷰의 bounds값이 변해도 위치가 변경되지 않는다.
잘 못 이해한 부분이 있다면 댓글로 알려주세요
참고한 글: https://zeddios.tistory.com/203
'ios > 면접질문 공부' 카테고리의 다른 글
앱이 시작할 때 main.c 에 있는 UIApplicationMain 함수에 의해서 생성되는 객체는 무엇인가? (0) | 2023.12.30 |
---|---|
App thinning에 대해서 설명하시오. (0) | 2023.12.19 |
iOS 앱 화면의 콘텐츠를 표시하는 로직과 관리를 담당하는 객체를 무엇이라고 하는가? (0) | 2023.12.19 |
iOS 앱의 콘텐츠나 데이터 자체를 저장/보관하는 특별한 객체를 무엇이라고 하는가? (0) | 2023.12.19 |
실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오. (0) | 2023.12.18 |
블로그의 정보
Beautiful Coding
사슴비행기