2009-05-11 6 views

Odpowiedz

34

Wygląda na to pytanie wymaga zaktualizowaną odpowiedź:

można bezpośrednio wejść do widoku przewijania powiązanych z poglądem internetowej. (tylko do odczytu) w iOS 5.0 lub wyżej. Nie sądzę, aby deweloperzy wspierali cokolwiek przed iOS 5.0, chyba że w wyjątkowych okolicznościach.

Z dokumentacji deweloperów Apple.

@property(nonatomic, readonly, retain) UIScrollView *scrollView 
Discussion 
Your application can access the scroll view if it wants to customize the scrolling behavior of the web view. 

Availability 
Available in iOS 5.0 and later. 
Declared In 
UIWebView.h 

Teraz można bezpośrednio napisać coś takiego:

webView.scrollView.showsHorizontalScrollIndicator = NO; 
webView.scrollView.showsVerticalScrollIndicator = NO; 

Nie trzeba iść do subviews z Webview.

11

UIWebView nie dziedziczy bezpośrednio od UIScrollView, ale być może uda się wykorzystać UIScrollView właściwości na UIWebView podrzędny:

[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsHorizontalScrollIndicator:NO]; 
[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsVerticalScrollIndicator:NO]; 

pojęcia, czy jest to dopuszczalne, ale działa dobrze i myślę, że powinno działać. Proszę złożyć raport, jeśli to działa.

Należy również rozważyć przesłanie żądania funkcji do firmy Apple pod numerem bugreport.apple.com, aby dodać tę właściwość do przyszłej implementacji UIWebView.

+2

Ten kod działa w systemie iOS 4.0 - 5.0, ale nie w systemie iOS 3.1.3. W iOS 4.0-5.0 '[webview.subviews objectAtIndex: 0]' zwraca instancję _UIWebViewScrollView, którą można przesłać do UIScrollView, ale w iOS 3.1.3 zwraca instancję UIScroller, której nie udało się przesłać do UIScrollView. –

+0

Alex Reynolds, dziękuję, zadziałało dla mnie – Meet

+0

Alex Reynolds, chociaż dostarczyłem odpowiedź, ale ponieważ twoja odpowiedź jest na górze. Czy możesz go zaktualizować. w iOS 5.0 i nowszych wersjach. scrollView widoku web można uzyskać jako właściwość tylko do odczytu. –

-1

Tam zdaje się być początkiem odpowiedzi tutaj:

http://discussions.apple.com/thread.jspa?threadID=1781730

Jeśli wyłączysz interakcji z użytkownikiem, to wydaje się usunąć pasek przewijania (może to być ok, jeśli strona internetowa wyświetlać nie przekracza wysokość ekranu).

Hackowanie javascriptowe wydaje się również opisywane, ale nie opanowuję go:/(musisz mieć dostęp do strony, którą próbujesz wyświetlić, ale to może nie być twoja ...)

5

zrobić to w ten sposób:

for (id subview in self.myWebView.subviews) { 
    if ([[subview class] isSubclassOfClass: [UIScrollView class]]) { 
     ((UIScrollView *)subview).bounces = NO; 
     ((UIScrollView *)subview).showsVerticalScrollIndicator = NO;  
     ((UIScrollView *)subview).showsHorizontalScrollIndicator = NO; 
    } 
} 
+0

Ładne i bezpieczne thx! – Plot

0

Jeśli ktoś szuka szybkiego rozwiązania następnie poniżej kod dla szybkiej 3,0

yourWebView.scrollView.showsHorizontalScrollIndicator = false 
yourWebView.scrollView.showsVerticalScrollIndicator = false