Остановить веб-просмотр от "Bouncing" (Monotouch / C #) - PullRequest
0 голосов
/ 14 октября 2010

Я использую Monotouch для разработки приложения для iPhone. Я знаю, что есть ответы на этот вопрос уже для Objective-C. Например:

Остановить отскок UIWebView по вертикали

Этот ответ идеален. Я подумал, что могу просто взять его и превратить в C #, и все будет хорошо.

Код Objective-C:

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

Я не смог найти ничего похожего на isSubclassOfClass: в C #, и после небольшого эксперимента я обнаружил, что мой webView содержал только одно подпредставление, которое представляло собой прокрутку. Поэтому я попробовал следующий код C #:

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

Это должно сработать, за исключением того, что возвращенный тип webView.Subviews[0] был типа UIView, а не UIScrollView - это означало, что компилятор жалуется, что UIView не имеет свойства "bounces" (что правильно).

Итак, мой вопрос, каков был бы подходящий способ сделать это? Есть ли способ получить экземпляр UIScrollView из подпредставлений? Или я поступаю совершенно неправильно?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 октября 2010

Люк,

Если вы хотите последовать тому же примеру, что и Obj-C, тогда вы захотите сделать что-то вроде этого:

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

, так как в примере выше предполагаетсячто первое представление в веб-представлении - это UIScrollView, которое может измениться в будущем.

Надеюсь, это поможет,

ChrisNTR

2 голосов
/ 14 октября 2010

Это удар в темноте, но:

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