view - frame 과 Bounds 의 차이

2022. 3. 25. 01:04Apple/iOS

frame 과 Bounds 를 파악하기 앞서 알면 좋은 개념

view의 frame 과 bounds 는 CGRect 라는 구조체를 통해서 표현된다.

CGRect

  • CGRect는 사각형의 크기와 위치에 대한 정보를 담고 있다.
  • CGRect의 origin 프로퍼티는 CGPoint 타입으로 사각형의 시작점을 나타낸다.
  • CGRect의 size 프로퍼티는 CGSize 타입으로 사각형의 높이와 너비를 나타낸다.
  • CGPoint는 좌표를 표현할 수 있는 x와 y를 갖고 있다.
  • CGSize은 위치와 높이의 값인 width와 height를 갖고 있다.

 


Frame : Instance Property

Documentation in developer Apple

The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.

This rectangle defines the size and position of the view in its superview’s coordinate system. Use this rectangle during layout operations to set the size and position the view. Setting this property changes the point specified by the [center] property and changes the size in the [bounds] rectangle accordingly. The coordinates of the frame rectangle are always specified in points.

frame = a view's location and size using the parent view's coordinate system

  • Important for: placing the view in the parent

SuperView(상위뷰)의 좌표시스템 안에서 View의 위치와 크기를 나타낸다.

(뷰의 좌표가 부모 뷰를 기준으로 결정)

 

더보기

SuperView 란.. 
view 의 계층구조는 superView > subView > siblingView 로 특정됨. - superView 와 subView 관계에서는 superView 가 우선 - 동일한 superView 내부에서는 여러 siblingView 가 있으면 먼저 addSubView 된 순서대로 drawing 된다.

 

Bounds : Instance Property

Documentation in developer Apple

A rectangle indicating the position and extent of the feature in image coordinates.

bounds = a view's location and size using its own coordinate system

  • Important for: placing the view's content or subviews within itself

⇒ Bounds는 본인의 좌표계에 의해 위치가 정해지기 때문에 어느 위치에 있던 (0,0)을 유지

즉, 뷰의 크기와 위치를 해당 뷰 자신의 좌표계를 기준으로 나타낸다.

 

 

차이점