iOS) Frame과 Bounds의 차이점

장일규·2021년 12월 13일
0
post-thumbnail

UIView에 property인 FrameBounds에 대해서 공부해보고자 한다.

framebounds는 CGRect타입이다.
CGRect타입은 사각형위치크기를 포함하는 구조체다.(CGRect이란?)
따라서, frame과 bounds는 CGRect타입으로 선언되어 있느니 사각형으로 그려진다.

originx좌표y좌표
sizewidth(너비)height(높이)를 가지게 된다.

Frame

super view(상위 뷰)에 좌표 기준으로 View의 위치나 크기를 나타낸다.

super view란?

View를 화면에 구성할때는 계층 구조가 존재한다.

최상위 계층에는 rootViewController가 존재하고,
rootView하위에는 UIView(view1) 을 배치할 수 있고,
UIView(view1)하위에는 UIView(view2) 를 배치할 수 있다.

view1의 SuperView는 RootView가 되는거고
view2의 SuperView는 View1이 되는것이다.

1-1. frame의 origin

frame에서 origin은 x좌표와 y좌표값는 Super View의 원점을 (0,0)으로 두고 얼마나 떨어져 있는지 나타낸 것이다.

  • view1

view1의 SuperView는 RootView이다.
RootView는 최상위 View이기 때문에 원점 좌표가 (0,0)이다.

view1은 RootView의 원점 좌표를 기준으로 x좌표는 60,y좌표는 110만큼 떨어져 있다.

view1의 frame의 origin은 (60,110)인 것이다.

  • view2

view2의 SuperView는 view1이고, view1의 원점 좌표는 (60, 110)이다.

view2는 view1의 원점 기준으로 x축은 50, y축은 100만큰 떨어져 있다.

따라서, view2의 frame의 origin은 (60,110)이다.

1-2. frame의 size

frame에 size는 width, height 값을 나타낸다.

정의는 View 영역을 모두 감싸는 사각형으로 나타낸 것이다.

위에 View의 frame.size출력 시

위와 같이 출력된다.

view1.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 5)

위에 코드를 추가하여 View를 회전 시키게 되면

view1을 회전 시 widthheight값이 변했다.(소수점은 절삭)

정의에서 View영역을 감싸는 사각형은 View가 차지하는 영역을 감싸서 만든 사각형이 frame이 size인 것이다.

bounds

FrameBounds
좌표superview에 의해서 좌표가 결정됨자신만의 좌표계 설정
크기(width,height)자신과 외접하는 최소 사각형의 width, height자기 자신의 width, height

reference

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN