- Frame vs Bounds2023년 06월 04일
- 2료일
- 작성자
- 2023.06.04.:05
깃허브에 돌아다니는 IOS 관련 면접 질문들을 보면 하나씩 꼭 있는 단골질문!!
frame과 bounds? 그게 뭔데? 그리고 뭐가 다른데???
물론 나도 다르다는 것은 안다. 하지만 설명하라고 질문이 들어왔을때... 어??? 뭐지? 또다시 머리 백지상태
나와 같은 피해자(?)가 없도록 아주 아주 자세하고 쉽게 정리를 하려한다. 좋게 읽었다면 그것이 땡큐입니다🥰
Frame! superview 좌표계에서 뷰의 위치와 크기를 나타낸다.
- UIView의 위치(superview), 크기(view영역을 감싸는 사각형 크기)를 나타낼때 사용.
여기서 조심해야하는것이 최상위에 있는 뷰가 아닌 superview! 즉 바로 한단계 위 뷰를 기준인것이다.
- origin(x,y) : superview의 원점을 (0,0)으로 놓고 얼마나 떨어져 있는지를
- width,height : 뭐 영어를 직독해보면 알겠지만 가로와 세로의 사이즈를 알려주는 것이다.
- 그런데 여기서 신기한게 만약 rotation하게된다면 프레임의 크기는 변하지 않는데 width랑 height은 달라진다. 그 이유는 바로 아래 사진에 있다. 이 frame이 차지하는 영역을 width랑 height로 정의한것 같다.
Bounds : 자신의 좌표계에서 뷰의 위치와 크기를 나타냄.
- 뷰를 회전한후 뷰의 실제 크기를 알고 싶을때 사용
- 뷰 내부에 draw할때 사용.
- 스크롤뷰에서 스크롤 할때 사용. 스크롤 하면 내가 원하는 시점을 볼수 있는 것인데 이게 bounds를 바꿔주면서 내가 원하는 것을보게 해준다.
- 그렇기에 origin은 0,0이다.
- bounds의 origin을 옮긵다는 것은 뷰에 서브뷰 어디를 담을지를 움직이는 것!
- view가 subview를 보는시점이 달라진다.
- 자신만의 좌표시스템을 가지기에 그 나머지것들을 옮겨주기에 어색할순있다.
- size(width,height) frame이랑 다르게 차지하는 영역이 아닌 정말로 이 bounds의 가로와 세로가 어느정도인지를 알려준다.
참고한 감사한 사이트
https://babbab2.tistory.com/44
iOS) Frame vs Bounds 제대로 이해하기 (1/3)
안녕하세요 :D 소들입니다 후후......... 오늘은 Frame과 Bounds에 대해 알아볼 거예욥...! 그 있잖음.. UIView에 등장하는 두 놈... 이전 포스팅 에서 CGRect는 View의 위치(origin)와 크기(size)를 나타내기 위해
babbab2.tistory.com
'면접준비' 카테고리의 다른 글
lazy var (1) 2023.07.07 디스패치 그룹 (0) 2023.07.02 GCD queue. (0) 2023.07.02 Actor🕴🏻 (0) 2023.06.29 Socket 통신 개념+구현까지(서버는 nodejs) (0) 2023.06.03 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)