View

300x250

[Swift 기초 개념] View, Window

지난학기 Java에 대한 강의를 들으면서 공부했던 Frame, Panel에 대한 내용과 Window, View에 대한 내용이 거의 일치하는 것 같아서 공부하기 편했어요! Xcode의 인터페이스 빌더를 활용하면서 GUI로 코드를 다루니 훨씬 더 편리하게 기능들을 추가하고 다룰 수 있어서 좋네요.

단순하게 View는 그림, Window는 액자에 해당한다고 보면 될 것 같아요. 액자안에 액자는 담지 못해도, 한 액자 안에 여러개의 그림이 들어갈 수 있고, 여러 그림을 콜라주해서 한 그림을 만들 수 있는 걸 생각해보면 View와 Window의 기본적인 개념과 비슷한 것 같네요.


View

View는 뭘까

View( '뷰'라고 부르겠습니다 )는 UIView 클래스의 인스턴스로, 윈도우 위에서 컨텐츠를 보여준다.즉, 화면에 나타나는 거의 모든 요소를 뷰의 컨텐츠라고 봐도 무방하다. 뷰는 컨텐츠를 나타내고 터치, 하위 뷰의 배치등의 역할을 수행한다.

뷰를 원하는 UI를 만들기 위해 쌓아올려야 하는 블럭으로 봐도 무방하다. 하나의 뷰로 모든 정보를 담기보다는, 여러 개의 뷰를 계층구조로 쌓아올려 UI를 표현하게 된다.

View Hierarchy - 뷰의 계층구조

뷰는 다른 컨텐츠를 담는 역할도 수행하지만, 다른 뷰를 담을수도 있다. ( Java의 GUI에서 Panel이 다른 Panel을 담는 것처럼! ) 이때 포함되는 뷰를 서브 뷰 또는 자식 뷰, 포함하는 뷰를 슈퍼뷰 또는 부모 뷰라고 부른다. 이렇게 형성된 뷰의 구조는 보여질 때, 작동할 때 모두 영향을 미친다.

여러개의 뷰가 겹쳐질 경우에 어떤 뷰가 맨 앞에 보여질 지에 대한 순서등이 결정되어야 한다

위 이미지에서 볼 수 있듯이, SuperView 아래에 SubView가 들어가는 계층구조를 형성할 수 있고, 이를 통해 View 끼리의 효율적인 배치 또는 관리가 가능해진다.

 

View Controller는 화면에 직접적으로 나타나지는 않지만 뷰를 컨트롤하고 정보를 주고받고 뷰를 새로고침하는 등의 역할을 수행한다.

Window

Window는 뭘까

UIWindow 는 화면에 나타나는 View를 묶고, UI의 배경을 제공하고, 이벤트 처리행동을 제공하는 객체이다. ( Java의 GUI에서 Frame의 역할과 비슷해보이네요! )

화면에 표시되는 View들은 모두 Window로 묶여있다. 보통은 하나의 윈도우만 사용하는데, 필요에 따라 개발자가 여러개의 윈도우를 만들어 뷰를 추가할 수도 있다. ( 보통은 외장 모니터를 위한 화면구성 등에 사용된다고 합니다 )

뷰와 윈도우 모두 코드를 통해 작성할 수도 있지만, Interface Builder 기능을 사용해 이를 작성하는 방법이 더욱 간단하다.

위 이미지처럼, View를 담기위해 기본적으로 Window가 하나는 필요하므로, 프로젝트를 생성하면 AppDelegate 파일에 window가 하나 선언되어있는 것을 볼 수 있다. ( 자동으로 작성되어있습니다! )


후에 필요한 경우, View와 Window에서 다뤄볼만한 기능들을 공부해봐야겠어요.

320x100
Share Link
reply
반응형
«   2024/12   »
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