2013-09-27 3 views
9

내 응용 프로그램에서 왼쪽 메뉴를 구현하고 싶습니다. NVSlideMenuController를 사용했습니다. 그리고 그것은 잘 작동합니다.슬라이딩 상태 표시 줄이있는 슬라이딩 사이드 메뉴도 구현하고 싶습니다. iOS에서

하지만 수정하고 싶습니다. 나는 contentViewController와 상태 표시 줄을 슬라이드하고 MenuViewController에 상태 표시 줄을 원하지 않습니다.

현재는 이미지 아래

enter image description here

모양을 나는 이미지 아래로 동일한 사전에

enter image description here

감사를 원하는 당신은하지 않을거야

+1

효과 "이동"할 수있는 상태 표시 줄을 이동을 수행하지만, 일부 조작을 통해. [this SO post] (http://stackoverflow.com/a/19011013/2740693) –

+1

가능한 [iOS 7에서 동작 상태 표시 줄] 참조 (http://stackoverflow.com/questions/19007694/moving-status- bar-in-ios-7) – codercat

답변

11

당신은, 당신은 상태 표시 줄이 업데이트되지 않았 음을 알 수 있습니다.

그것은 에서 새로운 API를 보인다 두 번째 이미지에 3G를 해제하려고 할 수 iOS7에

[[UIScreen mainScreen] snapshotViewAfterScreenUpdates:NO]; 

이 질문은 귀하가 요청하는 것과 동일한 질문 일 수 있으며, 원하는 것을 보여주기위한 데모가있을 수 있습니다.

Moving status bar in iOS 7

1

상태 표시 줄을 움직일 수 있어야합니다.

- (void) viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    if (animated) 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
    } 
    else 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:YES]; 
    } 
} 

- (void) viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 

    if (animated) 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; 
    } 
    else 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:NO]; 
    } 
} 

최고의 모습 볼 수 UIStatusBarAnimation의 다른 값으로 주위를 연주 해보십시오 : 당신이 할 수있는 최선은 뷰 컨트롤러에 대한 숨길 수 있습니다. 세 가지 값 : UIStatusBarAnimationNone, UIStatusBarAnimationFade 및 UIStatusBarAnimationSlide`가 있습니다.

+0

왼쪽 메뉴를 여는 동안 상태 표시 줄이 슬라이딩되는 사서함 응용 프로그램을 보았습니까? 나는 똑같은 것을 원한다. – Pratik

+0

UIApplication에는 statusBarFrame ([[UIApplication sharedApplication] .statusBarFrame)이라는 속성이 있습니다. CG 이미지 컨텍스트로 렌더링하고 그 이미지로 이미지보기를 만든 다음 상태 표시 줄을 숨기고 이미지보기를 움직여 볼 수 있습니다.그러면 상태 표시 줄이 "가짜"되지만 동적 내용은 표시되지 않습니다. – paulrehkugler

+0

또는 상태 표시 줄보기를 시도하기 위해 hitTest :를 시도 할 수 있습니다. 이것은 애플이 당신이하기를 원치 않는 것일 수 있으므로 어렵다. – paulrehkugler

2

당신은 keyWindow의 프레임 체인하여이 작업을 수행 할 수 있습니다 (당신은. 이것은 바로 모든 것을 이동해야합니다) [[UIApplication sharedApplication] keyWindow] (UIWindowUIView의 서브 클래스로이를 얻을 수 있습니다 당신은 가지고 또 다른 UIWindow해야 할 수도 있습니다 왼쪽에서 다른 물건.

0

이 대답하지만, 주석에 서식을 나누기 때문에 제임스의 대답에 응답하지 않습니다.

사실, keyWindow의 프레임을 설정하면 상태 표시 줄을 이동할 수 없습니다. 중단 점을 설정하고 keyWindow 재귀 설명을 인쇄하면 내부에 상태 표시 줄 정보가 없음을 알 수 있습니다.

(lldb) po [[[UIApplication sharedApplication] keyWindow] recursiveDescription] 
<UIWindow: 0x8c5bf80; frame = (0 0; 320 480); gestureRecognizers = <NSArray: 0x8c5c500>; layer = <UIWindowLayer: 0x8c5c0a0>> 
    | <UIView: 0x8b49700; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0x8b496b0>> 
(lldb) 

팔로우 Chris's 링크 Simon's에 대한 대답은 작업