UI위치를 구성하다 갑자기 헷갈려서 복습겸 frame과 bounds에 대하여 정리해보았다.
Frame bounds는 둘다 CGRect형이다.
CGRect는 origin(x,y좌표) 와 size(width,height)로 구성되어 있다.
x,y좌표인 CGPoint 형태, size 크기는 width,height값을 구하는 CGSize형태
CGPoint
- 2차원 좌표계에서 점을 구하는 구조체
CGSize
- 너비 및 높이 값을 구하는 구조체
CGRect
사각형의 위치와 크기를 포함하는 구조체
Frame과 Bounds는 UIView의 instance property이고
CGRect형이라 x,y,width,height을 가짐
frame
한단계 상위 뷰에서의 위치에서의 사각형
bounds
자신만의 좌표시스템에서의 사각형
1.superView는 superview(상위뷰)를 기준으로 0,0 좌표에 생성 됨
view1는 superView(상위뷰)를 기준으로 0,0 좌표에 생성 됨
2. superView는 superview(상위뷰)를 기준으로 x축100, y축 100 좌표에 생성 됨
view1는 superView(상위뷰)를 기준으로 0,0 좌표에 생성 됨
3.superView는 superview(상위뷰)를 기준으로 x축100, y축 100 좌표에 생성 됨
view1는 상위뷰와 상관없이 자신만의 좌표로 0,0 좌표에 생성 됨
4..superView는 superview(상위뷰)를 기준으로 x축50, y축 50 좌표에 생성 됨
view1는 상위뷰와 상관없이 자신만의 좌표로 0,0 좌표에 생성 됨
-> view1이 좌측상단으로 이동한것 처럼 보이지만 자신의 좌표계로 가만히 있고,
superView만 부모뷰로부터의 움직이는 것을 볼 수 있음
결론 : Frame은 상위뷰의 영향을 받고 Bounds는 자신만의 좌표계에서의 좌표이다.
'iOS랑 친해지기' 카테고리의 다른 글
[iOS] Switch must be exhaustive (.none / .some) (0) | 2023.08.17 |
---|---|
[iOS] 백그라운드일때 이벤트 발생 (NotificationCenter) (0) | 2023.08.15 |
[iOS] GCD와 동기,비동기 처리 (0) | 2023.08.02 |
[iOS] JSON 배열의 인덱스마다 구조가 다른 데이터 파싱 (옵셔널) (0) | 2023.08.02 |
[iOS] pod init 실패 (XCode 업데이트하고 Podfile 안깔릴때 응급치료법 Search for existing GitHub issues similar to yours) (0) | 2022.10.27 |