레이아웃 작업 중에 이 직사각형을 사용하여 뷰의 크기와 위치를 설정한다. 이 프로퍼티를 설정하면 center
프로퍼티에 지정된 점이 변경되고 이에 따라 bounds
사각형의 크기가 변경된다. frame 직사각형의 좌표는 항상 포인트로 지정된다.
Warning
transform
프로퍼티가 identity transform이 아닌 경우 이 프로퍼티의 값은 정의되지 않으므로 무시해야 합니다.
frame 사각형을 변경하면 draw(_:)
메서드를 호출하지 않고도 뷰가 자동으로 다시 표시된다. frame 사각형이 변경될 때 UIKit이 draw(:) 메서드를 호출하도록 하려면 contentMode
프로퍼티를 UIView.ContentMode.redraw
로 설정한다.
이 프로퍼티에 대한 변경 사항은 애니메이션으로 표시될 수 있다. 그러나 transform
프로퍼티에 non-identity transform이 포함된 경우 프레임 프로퍼티 값은 정의되지 않으며 수정해서는 안 된다. 이 경우 center
프로퍼티를 사용하여 뷰의 위치를 변경하고 bounds
프로퍼티를 사용하여 크기를 조정한다.
bounds.origin이 바뀌게 되면 자신이 움직이고 frame.origin은 바뀌지 않기 때문에 subview가 움직인 것처럼 보인다.
bounds의 default origin은 (0,0)이고 size는 frame 프로퍼티의 사각형 크기와 동일하다. 이 직사각형의 size 부분을 변경하면 중심점을 기준으로 뷰가 확대되거나 축소된다. size를 변경하면 그에 맞게 frame 프로퍼티의 사각형 size도 변경된다. bounds 사각형의 좌표는 항상 point로 지정된다.
bounds 사각형을 변경하면 draw(_:)
메서드를 호출하지 않고도 뷰가 자동으로 다시 표시된다. UIKit이 draw(:) 메서드를 호출하도록 하려면 contentMode
프로퍼티를 UIView.ContentMode.redraw
로 설정한다.