frame과 bounds는 View의 위치와 크기를 나타냄
frame은 Super View 좌표계에서 View의 위치와 크기를 나타냄
Super View의 원점을 (0,0)으로 놓고 원점으로 부터 얼마나 떨어져 있는지를 나타냄
= Super VIew의 좌표계에서 나타냄
View가 차지하는 영역을 감싸서 만든 사각형이 frame size
View가 회전하면 값이 변경됨

bounds는 자신의 좌표계에서 View의 위치와 크기를 나타냄
자신의 원점을 (0,0)으로 놓음
View를 처음 생성하면 bounds의 오리진은 (0,0)으로 초기화 됨
View 자체의 영역을 나타낸 것
VIew가 회전을 하더라도 bounds의 사이즈는 바뀌지 않음(bounds의 origin또한 변하지않음)

frame.orgin의 값을 (50,50)으로 변경 시킬경우
Super View에서 (50,50)떨어진 위치로 이동함.
해당 뷰의 Sub View들도 같이 이동
bounds.origin 값을 (50,50)으로 견경 시킬 경우
Super View에서의 해당뷰의 위치는 변경X
해당 뷰의 viewport(보임창)을 (50,50)으로 이동
-> 해당뷰의 sub View들이 해당뷰 내에서 (-50,-50)으로 이동한 것처럼 보임
frame은 UIView의 위치, 크기를 나타낼 때 사용
위치(origin)은 Super View 좌표계에서 나타내며, 크기(size)는 View 영역을 모두 감싸는 사각형의 크기
let myView: UIView = .init(frame: .init(x: 100, y: 100, width: 100, height: 100))
bounds 또한 UIView의 위치, 크기를 나타날 때 사용
위치(origin)은 자신의 좌표계에서 나타내며, 크기(size)는 View 영역 자체의 size이다
참조
개발자 소들이