728x90
아래 좌표계가 나와서 본편의 사진은 소들님 걸로 사용하겠습니다
사진 출처: 개발자 소들이
학습 목표
- frame과 bounds를 언제 사용하는지 알아보자
- ScrollView를 곁들인,,
학습 내용
1. Frame은 언제 사용할까
frame은 UIView의 위치, 크기를 나타낼 때 사용됨
SuperView로부터 위치를 계산해서, size에 따라 그려주는 역할
즉, UIView의 위치 및 크기 설정 때 사용
함
ley myView: UIView = .init(frame: frame)
이처럼 UIView의 좌표 잡을 때 사용됨
2. Bounds는 언제 사용할까
UIView의 위치, 크기를 나타낼 때 사용함
위치(origin): 자신의 좌표계
크기(size): View 영역 자체의 크기
a. View를 회전한 후, View의 실제 크기를 알고 싶을 때 사용
b. View 내부에 그림을 그릴 때 사용함
View 내부에 SubView가 아닌, 자기 내부 Layer에 그림을 그린다면 View 자신만의 좌표계가 필요라는데,,
이해못함 나중에 다시 ㄱㄱ
c. ScrollView에서 스크롤할 때 사용
우리가 직접 사용하지 않지만,
ScrollView가 bounds를 이용해서 동작함
스크롤하는 동작이 ScrollView의 bounds를 바꿔주는 것
ScrollView의 Bounds를 바꿔주는 것은,
ScrollView의 SubView 중 어디를 보여줄 지 정하는 것
bounds가 처음 (0, 0)일 때 위처럼 viewport를 보여주고 있을 거임.
근데 만약 우 → 좌로 스크롤하면, 아래처럼 됨
ScrollView의 origin 좌표가 0에서 180으로 변경,
ScrollView가 보여주고 있던, SubView에 대한 ViewPort가 변경돼서 휴대폰 화면이 저렇게 보이는 것.
ScrollView의 contentOffset 프로퍼티가 ScrollView의 Bounds를 설정하는 값이라고 한다.
정리
frame | bounds | |
---|---|---|
사용 용도 | View의 위치와 크기 나타낼 때 | - View 회전해도, 자신의 실제 크기를 알고 싶을 때 - View 내부에서 그림 그릴 때 - ScrollView의 원리 |
배운 점
- frame 특징 복습, View의 위치(origin)와 크기(size)를 나타날 때 사용됨
- bounds는 ScrollView에서도 쓰이고, 회전됐을 때 본인 고유 크기를 알고 싶을 때 사용됨
- bounds가 ScrollView 원리인 것도 알게 됨
참조 링크
'📱 iOS > UIKit' 카테고리의 다른 글
[UIKit] Cell Identifier 지정할 때, 휴먼 에러를 방지하기 (0) | 2024.10.06 |
---|---|
[UIKit] TableView에서 무한 스크롤 페이지네이션 처리 (1) | 2024.10.04 |
[UIView] frame & bounds (2) (10) | 2024.09.02 |
[UIView] frame & bounds (1) (0) | 2024.09.01 |
[UIKit] openURL vs SFSafariViewController, 앱 사용 중에 URL 페이지 띄워주는 방식의 차이 알아보기 (1) | 2024.08.24 |