2012-01-28 5 views
3

Мне нужно знать, как остановить прокрутку в UIwebview в xcode 4?Остановить прокрутку в UIWebview

[[[webView subviews] lastobject] setScrollingEnabled:NO]; 

Приведенный выше код не работает, поскольку «NSArray», например, сообщения, не объявить метод с селектором «lastobject». Почему это или есть новый код, о котором я не знаю, чтобы отключить прокрутку? Благодарю.

ответ

4
UIView* row = nil; 
for(row in webView.subviews){ 
    if([row isKindOfClass:[UIScrollView class] ]){ 
     UIScrollView* scrollRow = (UIScrollView*) row; 
     scrollRow.scrollEnabled = NO; 
     scrollRow.bounces = NO; 
     scrollRow.backgroundColor=[UIColor clearColor]; 
    } 
} 

ваш код пытается сделать предположение о порядке подвидов, что Apple, является определяющими ..

2

Я бы установил свойство UserInteractionEnabled веб-представления на NO, чтобы его нельзя было прокручивать.

+0

Вместо этого вы потеряете некоторые другие функции, которые могут быть полезны. Поэтому это не очень хорошая идея, если вы хотите отключить прокрутку. –

5

Обратите внимание, что с прошивкой 5 вы имеете прямой доступ к представлению прокрутки.

Так что если вы хотите, чтобы сохранить совместимость вы можете сделать это:

UIScrollView *scrollView = nil; 
if ([webView respondsToSelector:@selector(scrollView)]) { //iOS 5+ 
    scrollView = webView.scrollView; 
} else { //iOS 4- 
    for(UIView *view in webView.subviews){ 
     if([view isKindOfClass:[UIScrollView class] ]){ 
      scrollView = (UIScrollView *) view; 
      break; 
     } 
    } 
} 
scrollView.scrollEnabled = NO; 
scrollView.bounces = NO; 
scrollView.backgroundColor=[UIColor clearColor]; 
5

Просто добавьте эту строку в viewDidLoad:

myWebView.scrollView.scrollEnabled = NO; 
Смежные вопросы