iOS에서 bounds와 frame의 차이
UIView 등 눈에 보이는 개체들을 만들다보면 bounds와 frame이 나온다.
어떤 경우에는 bounds을 선택하던 frame을 선택하던 결과가 같다.
하지만 반대로 동일한 값임에도 전혀 다른 결과가 나오기도 한다.
과연 둘의 차이는 무엇일까? 간략히 요약하면 다음과 같다.
bounds는 뷰 자체의 좌표계를 이용한 좌표와 크기이다.frame은 슈퍼 뷰의 좌표계를 이용한 좌표와 크기이다.
자세히 알아보기
bounds와 frame의 차이를 자세히 알아보려면 아래의 그림을 참고하면 쉽다.

먼저 위 그림의 상황에서 View B가 기울어지지 않았다고 생각해보자.
이런 경우에 View B의 frame과 bounds를 이용한 값을 비교해보면 다음과 같다.
let bounds = (viewB.bounds.size.width / 2) // 100
let frame = (viewB.frame.size.width / 2) // 100
이처럼 특정 경우에는 같은 값이기 때문에 bounds와 frame의 차이를 알기 어렵다.
이번엔 그림처럼 view B가 기울어졌다고 가정해보자.
let bounds = (viewB.bounds.size.width / 2) // 100
let frame = (viewB.frame.size.width / 2) // 160
이와 같은 차이는 아까 말한 좌표계의 기준의 차이에서 비롯된다.
bounds의 경우는 늘 자기 자신의 좌표계를 기준으로 삼기 때문에 자기 자신이 차지하는 width는 언제나 200으로 고정이다.
하지만 frame의 경우는 늘 슈퍼 뷰의 좌표계를 기준으로 삼기 때문에 그림같이 기울기가 변경된다면 슈퍼 뷰의 기준에서 차지하는 width가 변경되기 때문에 고정되지 않는다.
기울기가 있는 경우는 흔한 경우는 아니긴 하지만, 슈퍼 뷰의 좌표계를 기준으로 측정해야 하는지 혹은 자기 자신의 좌표계를 기준으로 측정해야 하는지 상황에 따라 잘 골라야 한다.