iOS

Frame 과 Bounds 의 차이

@서비 2022. 5. 7. 07:27

 

Frame 개념

Frame 은 상위 뷰 안에서의 현재 뷰의 위치라고 보면 되고, 우리가 쉽게 떠올리는 기본적이고 일반적인 개념이라고 보면 된다.

 

Frame 구현

이미지로 확인해보면 아래의 프래임 이미지는 아래와 같이 코딩하고 self.view 에 addSubview를 한 경우이다

testView.frame = CGRect(x: 40,y: 50,width: 50,height: 50)

frame image

 

Bounds 개념

Bounds는 카메라는 그대로 있고, 뷰 자체를 움직이고 싶을 때 사용한다.

scrollview의 경우 본문의 크기는 휴대폰의 화면 사이즈를 넘어가는 형태로 그대로 있는 것이고 카메라도 그대로인데 뷰가 위로 올라가거나 내려가는 것을 상상해 볼 수 있다.

아래의 그림을 보면 더 잘 이해할 수 있다.

 

Bounds 구현

이미지로 확인해보면 아래의 프래임 이미지는 아래와 같이 코딩하고 self.view 에 addSubview를 한 경우이다

//Bound Image Origin

testView.frame = CGRect(x: 40,y: 50,width: 200,height: 200)
testView.backgroundColor = UIColor.blue
smallView.frame = CGRect(x: 40,y: 50,width: 50,height: 50)
smallView.backgroundColor = UIColor.red
testView.addSubview(smallView)

//Bound Image Modified
testView.bounds = CGRect(x: 40,y: 50,width: 200,height: 200)

 

Bounds Image Origin and Modified

 

 

화면을 일자로 늘어놓고 스크롤하도록 하는 화면을 만들 때, 특정 위치에서 정지하려고 하면 아래와 같이 setContentOffset을 사용하고 이때, GCPoint(x, y) 자리에 들어가는 게 Bounds라고 보면 되겠다.

scrlView.setContentOffset(CGPoint(x,y), animated: NO)