숨은 영웅 UIWindow

먼저 발췌한 코드를 보아라
    UIWindow*window = [UIApplication sharedApplication].keyWindow;
    self.frame =window.bounds;
    [windowaddSubview:self];

신기해 보이지 않아요?UI Window에 뷰를 직접 추가하다니, 약간 흑마법 같은 느낌이 든다.UIWindow가 도대체 무엇인지, 어떻게 사용하는지, 우리는 함께 iOS의 공식적인 해석을 내려다보았다.
모든 iOS 응용 프로그램에는 window가 응용 프로그램을 보여 주는 상호작용 페이지를 포함해야 합니다.윈도우의 역할은 매우 중요하지만, 대부분의 경우 개발자는 그것과 접촉할 필요가 없다.외부 화면에 표시할 수 있는 경우에만 윈도우를 사용할 수 있습니다.

요약:


iOS에서 window는 보기를 포함하고 장치에서 보기의 전시를 관리합니다.윈도우와 관련된 화면은 특정 장치의 디스플레이를 대표합니다.만약 응용 프로그램이 사용자가 보기를 외부 디스플레이 화면에 투사하는 것을 지원한다면, 내용을 보여주는 데 사용할 윈도우를 따로 만들어야 합니다.

주요 개념:


1, UIWindow 클래스는 UIView의 하위 클래스로서 특수한 UIView로 볼 수 있습니다.2, 일반 응용 프로그램에는 하나의 UIWindow 객체만 있습니다.3, 여러 개의 UIWindow 대상이 있어도 사용자의 터치스크린 이벤트를 받아들일 수 있는 UIWindow는 하나뿐입니다.

Window의 주요 역할:


역할 1, window는 응용의 시각적 영역을 포함한다.작용2,window는 터치 이벤트를 수신하여 각 보기에 나누어 주는 것을 책임진다.역할 3, 윈도우는 가로세로 화면의 변화를 수신하여 각 보기에 나누어 준다.

window 생성 정보:


1, 한 응용 프로그램은 최소한 하나의 윈도우를 포함한다.2,storyboard가 없는 시대에, 우리는 응용 프로그램에 들어갈 때 윈도우를 만들고 루트 뷰 controller와 연결시켜야 한다.연결된 후, window는 자동으로 보기를 추가하고, 전시 사이즈를 계산합니다.전시된 사이즈는 몇 가지 요소의 영향을 받는다. 상태 표시줄이 보이는지, 현재 장치의 가로와 세로 화면 상황, 그리고 보기가 전체 화면 표시인지 여부이다.코드는 다음과 같습니다.
    - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    myViewController = [[MyViewController alloc] init];

    window.rootViewController = myViewController;

    [window makeKeyAndVisible];

    return YES;

    }

3,storyboard의 시대에 주storyboard는 자동으로 윈도우를 만들어 묵묵히 우리를 위해 일을 한다.

다른 window를 만드는 유일한 목적은 외부 화면에 표시할 수 있도록 지원하는 것입니다.


만약 응용 프로그램이 외부 디스플레이 화면을 지원한다면, 일시적인 내용을 위한 윈도우를 추가로 만들어야 합니다.외부 디스플레이 화면에 같은 내용을 표시할 수 있습니다. '거울' 이라고 부르는 것도 기본적으로 발생하는 상황입니다.물론 너도 다른 내용을 보여줄 수 있다.

일부 이벤트는 주 window에만 전송됩니다.


메인 윈도우만 키보드 이벤트와 터치하지 않은 이벤트를 받을 수 있습니다.같은 시간에 메인 윈도우가 하나만 있을 수 있습니다.터치 이벤트는 터치된 윈도우에 반드시 분배되지만 좌표값 같은 이벤트는 없고 메인 윈도우에만 발송됩니다.절대 다수의 상황에서 응용 내용을 불러오는 창이 메인 창이다.그러나 경고 보기나 팝업 입력 보기를 팝업할 때 메인 창이 됩니다.

기타 참고 자료


윈도우에 대한 구체적인 사용: 어떻게 윈도우를 만들고 삭제합니까?윈도우를 어떻게 읽습니까?window의 등급, 높은 등급이 낮은 등급에 덮일까요?메인 윈도우를 설정하시겠습니까?윈도우가 숨겨지고, 표시되고, 덮어쓰거나, 주 윈도우로 설정되었을 때 특정한 알림을 보냅니다. 처리할 필요가 있으면 감청에 관심 있는 알림을 등록할 수 있습니다.아래의 두 편의 문장을 보십시오. 저는 짐꾼을 하지 않겠습니다.http://blog.csdn.net/chengyingzhilian/article/details/7872096 http://www.cnblogs.com/wendingding/p/3770052.html

요약:


1, 애플의 조언은 외부 디스플레이에 투사하지 않으면 새 윈도우를 만들 필요가 없다는 것이다.그래서 윈도우를 직접 만들거나 사용하는 것은 흑마법이다.필요하지 않으면 윈도우를 조작하지 마십시오.2, 윈도 차원에서 직접 조작하면 예상치 못한 편리함과 효과를 얻을 수 있다.관심 있는 학생은 다음 제3자 코드에서 이 흑마법을 사용할 수 있는지 공학을 통해 검색할 수 있다.3, 반드시 기억해야 한다: window는 사실 uiview의 하위 클래스이다.
많이 배우면 할수록 빨리 한다.많이 배우면 할수록 잘한다.

좋은 웹페이지 즐겨찾기