0

Webviewを使ったiPhone/iPad用アプリを作りました。Webview の上部をスクロールすると、パネルが開きます (Google アプリのように)。

Webview スクロール デリゲートを取得するには、そのコードを使用しています。

for(UIView * subView in webView.subviews){
    if ([subView isKindOfClass:[UIScrollView class]]) {
        webViewScroll = (UIScrollView *)subView;
        webViewScrollDefaultDelegate = webViewScroll.delegate;
        [webViewScroll setDelegate:self];
    }
}

スクロールを管理するには、次の関数を使用します。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView    
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

webview のスクロールから viewForZoomingInScrollView が何を返すべきかわからないため、デフォルトのデリゲートが必要です。

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    if(scrollView == webViewScroll){
        return [webViewScrollDefaultDelegate viewForZoomingInScrollView:scrollView];
    }
    return nil;
} 

iOS 4 では問題なく動作していますが、iOS 5 では webViewScroll.delegate を呼び出すと 0x0 (nil) が返され、ズームが機能しなくなりました...

私は何をすべきか?

4

2 に答える 2

0

iOS 5 アプリケーションで ARC をオンにする場合は、スクロール ビューのプロパティ設定を確認してください。IBOutlet の取得(nonatomic, weak)

于 2012-03-26T15:25:03.277 に答える
0

iOS の 2 つのバージョン間で API 機能が少し変更された可能性があります。私の推測では、iOS 5 の場合、少し異なる方法で実行する条件を設定できますか? (別のコード セグメントで適切に動作させることができる場合)

于 2012-03-26T12:53:01.480 に答える