2010-05-21 3 views
1

Я разместил следующий javascript в своем html-файле.Остановить прокрутку к вершине в UIWebView - iPhone

<script TYPE="text/javascript"> 
    function srk(){ 
     document.ontouchmove = function(e){ 
      e.preventDefault(); 
     } 
    } 
</script> 

Я прокручиваю свой веб-просмотр, следуя коду с некоторой анимацией.

[myWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat: @"window.scrollTo(0,%i);",414*self.initialScrollPosition]]; 

Все идет правильно, но по проблеме, с которой я столкнулся, заключается в следующем.

Когда пользователь/я нажимаю на строку состояния iPhone, WebView Bydefault прокручивает вверх. Этого не должно быть сделано.

Возможно ли предотвратить встроенные функции?

Я знаю, что один из вариантов заключается в следующем.

((UIScrollView *)[[myWebView valueForKey:@"_internal"] valueForKey:@"scroller"]).scrollsToTop = NO; 

Но это действительно так?

ответ

4

В окне можно добавить очень маленький UIScrollView. Затем, нажав на строку состояния, не будет прокручиваться веб-представление сверху.

1

Более простой способ сделать это - установить scrollsToTop свойство UIScrollView в WebView по NO.

for(UIView *view in [myWebView subviews]) { 
    if([view isKindOfClass:([UIScrollView class])]) { 
     [(UIScrollView *)view setScrollsToTop:NO]; 
    } 
} 

Я тестировал это на iOS 4.0 и 4.3 (iOS 5, похоже, не нуждается в этом).

от this.

Смежные вопросы