2010-10-14 11 views
0

J'utilise Monotouch pour développer une application iPhone. Je sais qu'il y a déjà des réponses à cette question pour Objective-C. Par exemple:Arrêtez webview de "Bouncing" (Monotouch/C#)

Stop UIWebView from bouncing vertically

Cette réponse est idéale. J'ai pensé que je pourrais juste le prendre, et le transformer en C# et ça ira bien.

Le code Objective-C est:

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

je ne pouvais pas trouver quelque chose de semblable à isSubclassOfClass: en C# et après un peu expérimentant, je trouve mon webView ne contenait un sous-vue, qui était un scrollview. J'ai donc essayé le code C#:

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

Cela aurait dû travaillé à l'exception du type retourné de webView.Subviews[0] était de type UIView pas UIScrollView - cela signifie que le compilateur se plaint le UIView ne dispose pas d'une propriété « bounces » (qui est correcte.)

Donc, ma question est, quelle serait la bonne façon de faire cela? Est-ce que je peux obtenir l'instance UIScrollView des sous-vues? Ou vais-je complètement à ce sujet dans le mauvais sens?

Merci.

Répondre

4

Luc,

Si vous êtes désireux de suivre le même exemple que l'Obj-C alors vous voulez faire quelque chose comme ça ;

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

depuis l'exemple ci-dessus suppose que la première vue dans un webView est un UIScrollView, ce qui peut changer à l'avenir.

Hope this helps,

ChrisNTR

2

C'est un coup de poignard dans l'obscurité, mais:

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

Cela a parfaitement fonctionné. Merci beaucoup. À vrai dire, je suis un peu gêné de ne pas y avoir pensé – Luke