Skip to main content
 首页 » 编程设计

c#之将事件附加到 UIWebView ScrollViewer 会阻止缩放

2024年06月20日47emanlee

每当我将事件附加到 UIWebView 的 ScrollViewer 以检测滚动时,它会阻止 UIWebView 放大和缩小。但是,上下滚动仍然有效。我正在 UIWebView 中查看 PDF。

我试过这些事件:

滚动 滚动动画结束 缩放结束 缩放

例如我试过:

ContractWebView.ScrollView.Scrolled += (object sender, EventArgs e) =>{ 
   Debug.WriteLine("Scrolled"); 
}; 

我已经尝试过一个空的事件主体。

请您参考如下方法:

您是否尝试过为 ScrollView 设置委托(delegate)而不是使用事件?像这样:

public class ScrollViewDelegate : UIScrollViewDelegate 
{ 
    public override void Scrolled(UIScrollView scrollView) 
    { 
        Console.WriteLine("Scrolled"); 
    } 
} 
 
ContractWebView.ScrollView.Delegate = new ScrollViewDelegate(); 

编辑: 这是我用于测试的完整代码,它对我有用:

public class IPadViewController1 : UIViewController 
{ 
    public override void ViewDidLoad() 
    { 
        base.ViewDidLoad(); 
 
        UIWebView webview = new UIWebView(new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height)); 
        webview.ScrollView.Delegate = new ScrollViewDelegate(); 
        webview.ScalesPageToFit = true; 
        View.AddSubview(webview); 
 
        string urlAddress = "http://google.com"; 
        NSUrl url = NSUrl.FromString(urlAddress); 
        //URL Requst Object 
        NSUrlRequest requestObj = NSUrlRequest.FromUrl(url); 
        webview.LoadRequest(requestObj); 
    } 
}