문제

Uikit 참조에 따르면 uiview는 uiwindow의 슈퍼 클래스이지만,이 부모에도 불구하고 Uiwindow는 실제로 Uiviews를 관리합니다. 이것은 나에게 너무 특이하게 들린다.

소프트웨어 설계 측면에서 이것의 중요성이 무엇인지 아는 사람이 있습니까?

많은 감사합니다.

편집하다:
iPhone 프로그래밍 안내서의 관련 단락을 읽었습니다. 그러나 나는 그들이 왜 그 반대를하는지 알 수 없었습니다. uiwindow를 uiview의 부모가 되십시오. 애플이 이런 식으로 클래스 계층 구조를 설계하도록 강요 한 것이 있었다.

도움이 되었습니까?

해결책

~에서 http://developer.apple.com/iphone/library/documentation/iphone/conceptual/iphoneosprogrammingguide/windowsandviews/windowsandviews.html

Mac OS X 개발자가 UI -Window 클래스에 대해 비정상적으로 찾을 수있는 한 가지는 상속입니다. Mac OS X에서는 NSWINDOW의 상위 클래스가 NSResponder입니다. iPhone OS에서 Ui -Window의 상위 클래스는 uiview입니다. 따라서 iPhone OS에서 창도보기 객체입니다. 부모에도 불구하고 일반적으로 iPhone OS의 Windows를 Mac OS X의 것과 동일하게 처리합니다. 즉, 일반적으로 UI-Window 객체의보기 관련 속성을 직접 조작하지 않습니다.

편집하다:

UIView는 일반적인 것입니다 (모든 유형의 뷰를 생성하고 속성에 액세스하는 데 사용하는 일반적인 방법을 제공합니다.) Ui -Window는 더 구체적이지만 (클래스는 화면에 응용 프로그램이 표시되는 Windows를 관리하고 조정하는 개체를 정의합니다).

나는 약간 모호하다는 것을 알고 있으며 애플 만이이 계층 구조의 정확한 이유를 알고 있다고 생각한다.

http://developer.apple.com/ibrary/library/documentation/uikit/reference/uiwindow_class/uiwindowclassreference/uiwindowclassreference.html#//apple_ref/occ/cl/uiwindow

UI -Window 클래스는 화면에 응용 프로그램이 표시되는 Windows를 관리하고 조정하는 객체 (Windows라고도 함)를 정의합니다. 창의 두 가지 주요 기능은 뷰를 표시하고 이벤트를보기에 배포하기위한 영역을 제공하는 것입니다.

그리고http://developer.apple.com/iphone/library/documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/cl/uiview

UIView 클래스는 모든 유형의 뷰를 작성하고 속성에 액세스하는 데 사용하는 공통 방법을 제공합니다. 예를 들어, 서브 클래스에 자체 지정된 이니셜 라이저가 없으면 initwithframe : 메소드를 사용하여보기를 만듭니다. 프레임 속성은 수퍼 뷰 좌표에서보기의 원점과 크기를 지정합니다. 모든 뷰에 대한 좌표계의 원점은 왼쪽 상단에 있습니다.

uiview 객체는 중첩 된 하위 뷰의 계층 구조로 Ui -Window 객체 내에 배열됩니다. View Hierarchy의 부모 객체를 수퍼 뷰라고하며 어린이를 하위 뷰라고합니다. View Object는 동봉 된 수퍼 뷰의 직사각형 영역을 주장하고 해당 영역 내의 모든 그림을 담당하며 이벤트에서 발생하는 이벤트도받을 수 있습니다. 형제 뷰는 문제없이 겹칠 수 있으므로 복잡한보기 배치가 가능합니다.

다른 팁

그러면 모든 uiview에는 창에만 적합한 속성과 동작이 있기 때문입니다. 그건 틀렸어.

다른 방법은 더 의미가 있습니다. 창은보기 위에 동작을 추가합니다. 따라서 그리기, 경계가 있고 다른보기 등을 포함 할 수 있습니다. 그러나 디스플레이에 렌더링하는 방법을 알고 있습니다.

MacOS X에서는 nswindows가보기가 아닙니다. ContentView라는 "루트보기"가 포함되어 있습니다. iOS Windows는 NSWINDOW +의 루트보기의 구성입니다.

기본 창의 루트보기를 포함한 각 정기적 인 UIView에는 부모보기가 있어야합니다. Ui -Window는 Uiview를 상속하여 View Hierarchy에서 부모보기의 업무를 수행합니다. UI -Window는 정기적 인보기가 아니며 UIView의 인터페이스에서 자체 메소드 구현을 가지고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top