UIView의 인스턴스 프로퍼티로
open var frame: CGRect
open var bounds: CGRect
CGRect: 사각형의 위치와 크기를 포함하는 구조체.
Frame: SuperView(상위뷰)의 좌표 시스템안에서 View의 위치와 크기를 나타냅니다.
frame의 핵심 -> SuperView(상위뷰) (상위뷰라는 것은 한단계 상위뷰를 의미)
frame은 뷰의 크기와 부모 뷰(Superview) 기준의 상대적 위치를 나타냅니다. 예를 들어, 뷰의 frame이 (x: 50, y: 50, width: 100, height: 100)이라면, 뷰의 왼쪽 상단 모서리는 부모 뷰의 왼쪽 상단 모서리로부터 오른쪽으로 50포인트, 아래로 50포인트 떨어져 있으며, 뷰의 너비는 100포인트, 높이는 100포인트라는 것을 의미합니다.
Bounds : View의 위치와 크기를 자신만의 좌표 시스템안에서 나타냅니다.
Bounds의 핵심 -> 자신만의 좌표 시스템
bounds는 뷰의 크기와 자신의 좌표계에서의 위치를 나타냅니다. bounds의 x와 y 좌표는 뷰의 내부에서의 위치를 나타내고, 이는 보통 뷰의 왼쪽 상단 모서리를 기준으로 합니다. 따라서 대부분의 경우 bounds의 x와 y는 0입니다. bounds의 width와 height는 frame의 width와 height와 같습니다.
간단히 말해서, frame은 부모 뷰에 대한 상대적 위치와 크기를, bounds는 자신의 좌표계에 대한 위치와 크기를 나타냅니다. 뷰가 회전하거나 스케일이 변경되면 frame은 변경되지만, bounds는 변하지 않습니다.