2010-03-18 7 views

답변

5

Tom의 답변에 따라 코드를 작성했습니다. 잘 작동한다.

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // required 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero]; 
    scrollView.delegate = self; 
    scrollView.contentSize = CGSizeMake(0.0f,1.0f); 
    [scrollView setContentOffset:CGPointMake(0.0f,1.0f) animated:NO]; 
    // optional 
    scrollView.scrollsToTop = YES; // default is YES. 
    [self.view addSubview:scrollView]; 
} 

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView { 
    NSLog(@"Detect status bar is touched."); 
    /* Your own code. */ 
    return NO; 
} 
0

수 없습니다. 상태 표시 줄은 응용 프로그램에 의해 보류됩니다. 이 기능을 켜거나 끌 수만 있습니다.

더 중요한 것은 상태 표시 줄을 들으면 Apple의 하드웨어 작동을 방해 할 수 있으므로 Apple에서 귀하의 앱을 거부 할 수 있습니다. 낮은 배터리를 위장하거나 숨기기.

보기를 전체 화면으로 눌러야하는 경우 상태 표시 줄을 숨기 만하면됩니다.

+0

그것은 * (첫 번째 응답자에 따라) 가능 *이며, 승인 된 응용 프로그램에서 수행됩니다 팁을위한 http://blog.instapaper.com/post/420370426 – Tom

1

응답자 체인에 UIScrollView가 있어야하며 위임 집합이 있어야합니다. 위임자에서 scrollViewShouldScrollToTop:을 재정의 할 수 있으며, 사용자가 상태 표시 줄을 두드리면 호출됩니다. 스크롤보기를 다시 위로 스크롤하는 기본 동작을 원하지 않으면 NO을 반환하십시오.

+0

톰, 감사합니다. 불행히도 나는 당신이 제안한 모든 것을하고 있지만 여전히 이벤트를받지 못하고 있습니다. scrollView는 첫 번째 응답자이고 ViewController는 대리자입니다. 이것이 작동하지 않을 수도 있다고 생각하는 다른 이유는 무엇입니까? – user305578

+1

여러 가지 시도를 한 후에 답을 찾았습니다. 내 UIScrollView 여러 UIWebViews가 포함되어 있습니다. 각 UIWebView에는 기본적으로 scrollsToTop == YES가있는 UIScrollView가 있습니다. 트릭은 UIWebView를 파고 관련 UIScrollView의 scrollsToTop을 NO로 설정하는 것이 었습니다. 그 후 원래의 UIScrollView의 scrollViewShouldScrollToTop은 UIWebView의 것들에 의해 인터셉트되지 않았습니다. – user305578