从“Bouncing”(Monotouch / C#)停止webview

时间:2010-10-14 11:07:58

标签: iphone uiwebview xamarin.ios

我正在使用Monotouch开发iPhone应用程序。 我知道Objective-C已经有了这个问题的答案。例如:

Stop UIWebView from bouncing vertically

这个答案很理想。我想我可以拿它,然后把它变成C#就可以了。

Objective-C代码是:

  for (id subview in webView.subviews)
    if ([[subview class] isSubclassOfClass: [UIScrollView class]])
      ((UIScrollView *)subview).bounces = NO;

我在C#中找不到与isSubclassOfClass:类似的内容,经过一些小实验,我发现我的webView只包含一个子视图,它是一个scrollview。所以我尝试了以下C#代码:

foreach (var view in webView.Subviews)
{
   webView.Subviews[0].Bounces = false;
}

这应该有效,除了返回的webView.Subviews[0]类型是UIView而不是UIScrollView - 这意味着编译器抱怨UIView没有属性“反弹“(这是正确的。)

所以我的问题是,这样做的恰当方法是什么?有没有办法从子视图中获取UIScrollView实例?或者我是否完全以错误的方式解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:4)

路,

如果你想跟随Obj-C这样的例子那么你会想要做这样的事情;

foreach (var view in webView.Subviews.OfType<UIScrollView>())
{
   view.Bounces = false;
}

因为上面的例子假设webView中的第一个视图是UIScrollView,将来可能会改变。

希望这有帮助,

ChrisNTR

答案 1 :(得分:2)

这是在黑暗中刺伤但是:

((UIScrollView)webView.Subviews[0]).Bounces = false;