2012-02-29 5 views
2

だから私は持って次のコード:は、エラーが発生し

NSString *currSysVer = [[UIDevice currentDevice] systemVersion]; 
    if ([currSysVer compare:@"5.0" options:NSNumericSearch] != NSOrderedAscending) { 
     webScrollView = self.webView_.scrollView; 
    } else { 
     webScrollView = [self.webView_ defaultScrollView]; 
    } 

webScrollView.delegate = self 

と私はスクロールするとき、それは私に与える:これはどんな意味がありません

-[UIWebView scrollViewDidScroll:]: unrecognized selector sent to instance 0x8e8610 

を理由のUIWebView scrollViewDidScrollを呼び出しています。

+0

のための解決策を見つけましたか? – Stavash

答えて

1

hereの場合、UIWebViewはUIScrollViewDelegateに準拠しています。本質的に、UIWebViewはスクロール可能であるため、同じ委譲を使用しています(UIScrollViewのサブクラスですが、ドキュメントには明示されていませんが、UIScrollViewはWebViewの一部です)。

+0

hmmm ...だから、どうやってクラッシュせずにこの作品を作れますか? – adit

+0

あなたのコードをもう少し見ると、webScrollViewとwebViewをどこで定義しているのか分かります。あなたはこれらの行のいずれかであなたが無視している警告を受け取りますか?あなたはどこでも手動でscrollViewDidScrollを呼び出していますか? – JKomusin

0

UIWebViewはそれがscrollViewDidScrollを意味し、デリゲートであるscrollViewその-Aを持っている:あなたはのUIWebViewはそのscrollViewに提供して参照を使用している、あなたは今、あなたがなることを言っているので、この方法は、UIWebViewによって実装されますscrollViewDidScroll:を含むこのコールバックを処理すると、デリゲートコールが失敗したときにそれが失敗するのはなぜなのでしょうか?

なぜwebview scrollview?の代理人として割り当てようとしていますか?その動作は既に実装されています。私はあなたがその動作を変更しようとするとうまくいくかどうかはわかりませんが、どちらの場合でもscrollViewの代理人になりたい場合は、UIScrollViewDelegateプロトコルを実装して、必要なメソッドを実装する必要があります。

0

私はあなたがwebScrollViewを割り当てているすべてのバージョン

UIScrollView* sv = nil; 
    for (UIView* v in _webview.subviews) { 
     if([v isKindOfClass:[UIScrollView class]]){ 
      sv = (UIScrollView*) v; 
      sv.scrollEnabled = NO; 
      sv.bounces = NO; 

    } 
} 
関連する問題