2009-10-25 2 views
0

나는 지옥으로 변한 단순한 작업 때문에 머리를 심각하게 잃어 가고있다. 그래서 UIScrollView 하위 클래스 - MyScrollView 및 해당 스크롤 뷰를 사용하여 UIViewController 하위 StoryViewController 있습니다. 스크롤이 스크롤 될 때 알아야합니다. 어떻게해야합니까? 나는 위임하려고한다!위임 UIScrollView가 작동하지 않습니다 - 도움이 필요합니다!

// StoryViewController.h 
@interface StoryViewController : UIViewController <UIScrollViewDelegate> 

// StoryViewController.m 
// init 
scrollView = [[MyScrollView alloc] init]; 
scrollView.delegate = self; 

// delegated function 
- (void)scrollViewDidScroll:(UIScrollView *)s { 
    NSLog(@"TEST"); 
} 

편집 : 일부 NSLogs

Self: <StoryViewController: 0xfce090> 
ScrollView Delegate: <StoryViewController: 0xfce090> 
WebView Delegate: <StoryViewController: 0xfb1a30> 

편집 :있는 UIWebView 하위 클래스 (MyWebView) MyScrollView의 서브 뷰가 잘 작동하고 (무효) webViewDidFinishLoad입니다 : 같은 storyviewcontroller.m에서 ((있는 UIWebView *) 웹보기) 메시지를 인쇄합니다.

오류없이 빌드가 정상적으로 작동합니다. 스크롤 한 후에 아무것도 인쇄되지 않습니다.

내가 뭘 잘못하고 있니?

답변

0

다시 한번, 어리 석음 포상은 sniurkst에 간다. 사실 UIWebView는 incorectly UIScrollView에 추가되었으므로 나에게 "내 세상에, 내 스크롤보기가 작동 중"이었습니다. UIWebView는 여전히 스크롤되어 있었지만 자신의 스크롤이었습니다.

죄송합니다. 내 어리 석음 때문입니다. 다음 번에 더 많은 코드 샘플을 추가해 주셔서 감사합니다. 내 실수를보고 웃을 수 있도록 도와주세요.

그리고 누군가가 나를 정확하게 사용하는 방법을 가르쳐 주면 ScrollView 내부의 WebView를 사용하여 ScrollView가 모든 스크롤 작업을 담당하게되어 매우 감사하게 생각합니다.

+0

죄송합니다.이를 수행 할 방법이 없습니다. WebViews는 자체 스크롤을 처리합니다. 고정 크기 UIWebView를 사용하고 userInteractionEnabled 플래그를 비활성화 할 수 있습니다. 당연히, 그 후에 일정한 접촉은 작동하지 않을 것이다. 다른 접근법을 권하고 싶습니다. –

+0

CSS는/js와 링크와 WebViews 풍부한 텍스트가 필요하고 또한 그 스크롤 오프셋 및 때 스크롤 해야할지 알아야하기 때문에 음, 슬픈거야 ... 당신의 답변을 주셔서 감사합니다, 아마도 나는 무언가를 아웃. – sniurkst

3

사실 scrollView이 표시되는 스크롤보기입니까? 내가 그 생각할 수있는 몇 가지 나는 절망의 순서로 확인합니다 : self.view가

  • 확인로드 된 후 실제로 self.view 할 수있는 ScrollView를 추가

    1. 확인하는 것이 내가 자기에있는 ScrollView를 추가 할 때 .view, 그것은 내가 가진 동일한 개체 내가 대리자
    2. Checkwhen를 할당 할 때있는 ScrollView의 대표가 여전히 뷰 컨트롤러 자체입니다
    3. 확인으로 설정되어 있는지 나는를 할당 할 때 뷰 컨트롤러로 설정 사실,있는 ScrollView를 추가입니다 위임자
    4. 일반적인 UIScrollView를 사용해보십시오. 무엇이든 변경하면
  • +0

    감사합니다. 귀하의 정보는 유용했으며, 모든 것을 시도했지만 더 많은 정보를 얻었지만 여전히 운이 없습니다. MyScrollView에 UIScrollView를 위임하더라도 아무 일도 일어나지 않습니다. 어쩌면 위임 된 함수에 문제가있을 수 있습니까? 그들이 도달 할 수 없습니까? – sniurkst

    +0

    그냥 분명히하기 위해 MyScrollView를 UIScrollView로 대체 해 보았습니까? 대리인이 작동해서는 안되는 코드를 기반으로하는 이유가 없으므로 다른 곳에서 문제가 발생했습니다. –

    +0

    예, 원본 UIScrollView를 시도했습니다 - 도움이되지 않았습니다. 또한 그것은 scrollView.contentSize와 같이 보이고 .contentOffset은 0을 유지합니다. 이런, 내가 여기서 뭘 했니 .. – sniurkst

    4

    빨간 청어 일지 모르지만 alloc과 initWithFrame :이 아니라 alloc과 init을 호출 할 수 있습니다. viewDidLoad 메서드에서 scrollView 추가하는 가정합니까? 이 컨트롤러는 XIB 기반 컨트롤러입니까? XIB 파일에서 scrollview를 추가하고 설정을 해봤습니까? 다른 대리자 메서드를 추가하려고 시도 했습니까?

    +0

    그냥 init 대신 initWithFrame을 사용해야합니까? 정말 모르겠지만 "init"을 사용하고 프레임을 나중에 설정하는 것이 일반적이라고 생각했습니다. MyScrollView에는보기 컨트롤러가 없으므로 XIB가 baised되지 않습니다 (IB가 너무 무서워서 프로그래밍 할 수있는 모든 작업을 수행하려고합니다). 다른 대리자 메서드도 작동하지 않습니다. 그리고 내 머리가 지옥처럼 아파요, 그게 쉬운 일이라고 생각 해요. – sniurkst

    +0

    MyScrollView의 하위 뷰인 UIWebView가 어떻게 든 가로 채고 모든 것을 망가 뜨릴 수 있습니까? 어떻게 테스트 할 수 있니? – sniurkst

    +0

    initWithFrame : 뷰의 지정된 초기화 프로그램입니다. 자신의 init에서 호출해야하며 init을 재정의하지 않은 경우 직접 호출해야합니다. UIWebView가 UIScrollView의 자식이면 이벤트를 잡는 것이 가능합니다. 가장 간단한 방법은 UIWebView를 UIImageView의 고정 UIImage로 대체하는 것입니다. UIWebView는 자체 스크롤을 처리합니다. 당신은이 방식으로 그것과 상호 작용하는 데 아주 어려움을 겪을 것입니다. –

    관련 문제