음악재생) iOS View 체계

이하연·2021년 8월 15일
0

Boostcourse

목록 보기
6/20

1. 뷰의 기본적인 역할

  • iOS에선 화면에 애플리케이션의 콘텐츠를 나타내기 위해 윈도우와 뷰를 사용합니다.
  • 윈도우는 뷰를 위한 컨테이너 역할을 합니다.
  • 뷰는 UIView 클래스 or UIView 클래스의 하위클래스의 인스턴스로 윈도우의 한 영역에서 콘텐츠를 보여줍니다.
  • 뷰는 뷰 계층 구조에서 부모뷰, 자식뷰의 위치, 크기를 관리합니다.
  • 뷰는 자신의 콘텐츠를 보여주는 것과 더불어, 다른 뷰를 위한 컨테이너로써의 역할도 합니다.

2. 뷰 계층

  • 하나의 뷰가 다른 뷰를 포함할때, 두 뷰 사이에는 부모-자식 관계가 형성됩니다.
  • 해당 관계에선 자식뷰는 서브뷰 , 부모뷰는 슈퍼뷰로 불립니다.
  1. SuperView 생성

    • 객체 라이브러리에서 "View Controller"객체를 추가하면 이 UIViewController는 스스로 화면에 표시되는 인스턴스가 아니므로, 자신이 운용할 View를 반드시 가지고 있어야합니다. 이 때문에 인터페이스 빌더에서 ViewController 인스턴스를 추가하면 View가 자동으로 추가됩니다.

  2. SubView 추가하기

    • 코드로 작성

      부모뷰의 addSubView 메서드 호출하여 추가하기

      class ViewController: UIViewController{
      		override func viewDidLoad(){
      				super.viewDidLoad()
      				
      				let frame = CGRect(x: 60, y: 100, width: 240, height: 120)
      				let subView = UIView(frame: frame)
      			
      				subView.backgroundColor = UIColor.green
      				
      				view.addSubView(subView)
      		}
      }
  3. SubView 제거하기

    • 코드로 작성

      removeFromSuperview() 메서드 호출하여 제거하기

      class ViewController: UIViewController{
      		override func viewDidLoad(){
      				super.viewDidLoad()
      				
      				let frame = CGRect(x: 60, y: 100, width: 240, height: 120)
      				let subView = UIView(frame: frame)
      			
      				subView.backgroundColor = UIColor.green
      				
      				view.addSubView(subView)
      
      				subView.removeFromSuperview()
      		}
      }

3. 뷰의 좌표계

  • UIKit에서 기본이 되는 좌표계는 좌측 상단 모서리를 원점하며 원점 기준으로 아래쪽, 오른쪽 방향으로 확장됩니다.
  • 좌표값은 해상도에 상관없이 콘텐츠의 위치를 잡는 부동소수점을 사용하여 나타냅니다.

4. 프레임과 바운드

  • 뷰의 프레임은 뷰의 크기와 위치를 슈퍼뷰의 좌표계를 기준으로 나타냅니다.
  • 뷰의 크기와 위치를 해당 뷰 자신의 좌표계를 기준으로 나타냅니다.

5. 뷰의 사각형 세부적인 내부

프레임을 쓰면 좋은 경우: 한 단계 상위뷰와 비교해서 뷰를 배치하는 경우

바운드를 쓰면 좋은 경우: 스크롤뷰를 사용하는 경우

0개의 댓글