티스토리 뷰

부스트코스를 수강하면서 배운 내용과 추가로 알고 싶은 내용을 정리하기로 했다

오늘 정리한 부분은 UIKit에서 사용할 뷰와 관련한 내용이다


뷰 계층(View hierarchy)

뷰 계층구조와 서브뷰 관리

  • 뷰는 자신의 콘텐츠를 보여주고, 다른 뷰를 위한 컨테이너의 역할을 함
  • 뷰가 다른 뷰를 포함할때 자식뷰를 서브뷰(subview) 부모뷰를 슈퍼뷰(superview)라고 함
  1. 서뷰뷰가 불투명하면 서브뷰는 슈퍼뷰를 가림
  2. 서브뷰가 반투명하면 슈퍼뷰의 색상과 서브뷰의 색상이 섞여 보임
  3. 서브뷰가 여러개이고 겹치게 되면 늦게 추가된 서브뷰가 위로 올라옴
  4. 여러 서브뷰가 겹치고 반투명 하다면 색상은 전부 섞여 보임
  5. ETC : Creating and Managing a View Hierarchy

뷰 계층의 생성과 관리

  • 뷰는 인터페이스 빌더와 코드로 생성 가능
  • 코드로 뷰를 생성할 경우 서브뷰들은 슈퍼뷰위에 올리기 위해 addSubview(_ :)를 사용
  • 서브뷰를 제거 하기 위해서는 removeFromSuperview()를 사용
  • 중간에 삽입할려면 insertSubview(_ : ,at :)를 사용
  • 이미 존재하는 서브뷰를 정렬하려면 bringSubviewToFront(_ :)와 sendSubviewToBack(_ :)을 사용

뷰의 좌표계

  • UIKit에서 기본이 되는 좌표계는 좌측 상단 모서리를 원점으로 함
  • 원점으로부터 아래쪽, 오른쪽 방향으로 확장
  • 좌표값은 해상도와 관계없이 부동소수점을 사용

프레임과 바운드

  • iOS의 좌표체계의 시작은 왼쪽 위뷔터 시작 - 제일 왼쪽의 제일 위의 지점이 (0,0)
  • 수평축 - x / 수직축 - y
  • 프레임(frame)은 뷰의 크기와 위치를 슈퍼부의 좌표계를 기준으로 나타냄
  • 바운드(bounds)는 뷰의 크기와 위치를 해당 뷰 자신의 자표계를 기준으로 나타냄


생각해보기

뷰의 좌표계에서 프레임과 바운드가 각각 있는 이유?

frame은 뷰가 (x,y)에 (width, height)만큼 있으면 좋겠다. bounds는 변경된 뷰가 (x,y)만큼 이동했구나 또는 (width, height)만큼 변경 됐구나 정도인것 같다. 역시 아직은 bounds의 의미가 크게 다가오지 않는데 언젠가 bounds를 쓰면 이해할 수 있지않을까 싶다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함