0

我为 iPhone/iPad 制作了一个使用 Webview 的应用程序。当我在我的 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

我需要默认委托,因为我不知道 viewForZoomingInScrollView 应该从 webview 的滚动返回什么。

-(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

它的 API 功能可能在两个 iOS 版本之间发生了一些变化。我的猜测是,在 iOS 5 的情况下,你可以有一个条件来稍微不同地运行它?(如果您可以让它在单独的代码段中正常工作)

于 2012-03-26T12:53:01.480 回答