2010-01-18 3 views
0

사진보기 기능이있는 앱을 만들고 있습니다. 나는 UIScrollView 짐승과 싸우고있다. (내 scrollview 지식 RSN 게시를 희망한다.) 아이폰 사진 앱의 다른 시각적 효과를 복제하려고한다. 특히 이미지를 볼 때 컨트롤과 바를 풀어 버리고 싶습니다.iPhone 사진 앱에서 애니메이션을 복제하는 방법

상태 표시 줄, 탐색 모음 및 탭 표시 줄의 표시 여부를 전환하는 메서드가 있습니다. 이미지와 함께 스크롤보기 만 남겨 둡니다. 스크롤보기는 전체 화면입니다. 사용자가 무언가를 한 후 (3 초 동안 화면을 누르고, 다음 이미지를 보는 등) 3 초 후에 타이머를 작동시키고 timerFired 메서드에서 막대를 끄는 메서드를 호출합니다. 화면의 한 번 탭하면 막대가 켜집니다. 전체 화면 상태를 토글하는 방법은 다음과 같습니다.

- (void)setFullScreen:(BOOL)fullScreen { 
    // reset the timer 
    [myTimer invalidate]; 
    [myTimer release]; 
    myTimer = nil; 

    // start animation section 
    [UIView beginAnimations:nil context:nil]; 
     // toggle the status bar  
     [[UIApplication sharedApplication] setStatusBarHidden:fullScreen animated:YES]; 
     [UIView setAnimationDuration:UINavigationControllerHideShowBarDuration]; 
     CGFloat alpha = fullScreen ? 0.0 : 1.0; 
     // change the alpha to either 0 or 1 based on hiding or showing the bars 
     self.navigationController.navigationBar.alpha = alpha; 
     self.tabBarController.tabBar.alpha = alpha; 

    // do the animations! 
    [UIView commitAnimations]; 

    // restart the timer after we show the bars  
    if (!fullScreen) { 
     myTimer = [[NSTimer timerWithTimeInterval:3.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO] retain]; 
     [[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSDefaultRunLoopMode]; 
    } 
} 

기본적으로 작동하지만 사진 앱만큼 좋지는 않습니다. 애니메이션 메서드를 사용할 수있는 숨겨진 메서드를 사용하는 대신 사진 응용 프로그램과 비슷하게 보이므로 알파 값에 애니메이션을 적용하고 있습니다. 내 문제는 상태 표시 줄에 대해 동일한 작업을 수행하고 있습니다.

내 질문 : (1) 상태 표시 줄에 대한 UIView가 있습니까? (2) 상태 표시 줄의 알파 속성을 변경하는 방법이 있습니까? (3) 다른 UIWindow의 상태 표시 줄입니까? (4) "법적"방법을 사용하여이를 달성하는 또 다른 방법이 있습니다 (앱 스토어에이 앱을 넣어야합니다).

UIApplication의 windows 속성을 버렸습니다. 단 하나의 창만 있었고 뷰 계층 구조를 크롤링했으며 상태 표시 줄에 대한 명확한보기가 없습니다.

어떤 아이디어가 있습니까?

+0

애니메이션 코드를 사용할 수 없지만 UIScrollView 코드를보고 싶습니다. –

+0

기회가 생겼을 때 스크롤보기 코드를 공유하십시오. 많은 사람들이 거의 성공하지 못하면서 iphone 사진 응용 프로그램을 모방하려고 고심하고 있습니다. – Jonah

답변

0

상태 표시 줄은 SpringBoard 자체에서 생성되며 SBStatusBar 클래스입니다 (IIRC가 UIWindow에서 상속 함). 앱 스토어 애플리케이션에는 액세스 할 수 없습니다.

+0

내 앱에서 다른 창을 사용하는 경우 해당 창에 상태 표시 줄이 자동으로 표시됩니까? 즉, 두 개의 창 (하나는 막대와 하나는 사용하지 않음)을 사용하고 애니메이션을 사용하여 두 창 사이를 전환하여 막대에 더 부드럽게 디졸브 할 수 있습니까? – FingerTipFun

+0

여러 UIWindow를 사용하지 마십시오. 그것은 단지 좋은 일로 이어지지 않습니다. –

+0

정보 주셔서 감사합니다. – FingerTipFun